zoukankan      html  css  js  c++  java
  • T 语言语法设计(预审稿)

    欢迎吐槽

    一、 字面量

    1. 数字字面量

    0, 0xff, 0b10_01, .1

    2. 字符串字面量

    'x', "x uffffUffffffff", `x{1}y`

    3. 布尔和空字面量

    true, false, null

    4. 数组和对象字面量

    [0, 1..8, 2...3, 3..-=1..1]

    {x: 0, ...obj}

    5. 函数字面量

    x => x + 1

    <T> (x: T, y) => { }

    6. 类型字面量

    <Float>0, <RegExp>'w+', <X>[1, 2]

    7. 标识符

    x, x, , _

    二、 表达式

    8. 算数运算表达式

    +, -, *, /, mod, ^

    9. 比较运算表达式

    ==, !=, <, >, <=, >=

    10. 逻辑运算表达式

    &, |, !

    11. 空值运算表达式

    ??, !

    12. 赋值运算表达式

    =, +=, -=, *=, /=, &=, |=, ??=, ->

    13. 更新表达式

    ++, --

    14. 类型操作表达式

    as, is, X<Y>

    15. this 表达式和 super 表达式

    this, super

    16. 访问表达式

    x.y, x?.y, x[y], x[^1, ^0]

    17. 函数和构造函数调用表达式

    fn(p: x, y)

    new X()

    18. 分支表达式

    x ? y : z

    x match {0 => 1, 1 => 0}

    19. 遍历表达式

    arr ~ sum

    20. 括号表达式

    (x)

    三、 类型

    21. 特殊类型

    any, void

    22. 数字字面量类型

    0, 0xff, 0b10_01, .1

    23. 字符串字面量类型

    'x', "x uffffUffffffff", `x{1}y`

    24. 布尔和空字面量类型

    true, false, null

    25. 数组和对象字面量类型

    [X, Y]

    {x: X, y: Y}

    26. 函数和构造函数字面量类型

    (x: X) => Y

    new() => X

    27. 区间类型

    1..10, 2...10

    28. 标识符和成员访问类型

    X, X, X.Y, $import("path").X

    29. 泛型和数组类型

    X<Y>

    X[]

    30. 双目运算和单目运算类型

    &, |, -

    31. this 类型

    this

    32. 条件类型

    X is infer T ? T : Y

    33. 括号类型

    (X)

    四、 声明

    34. 变量声明

    x := 0;

    x: number = 0;

    35. 访问器声明

    get accessor { return 0 }

    set accessor { print(value) }

    36. 函数声明

    function fn<T>(x, y: T, z = 1, ...rest) => 0;

    37. 类声明

    class X: Y {

        field = 0;

        get accessor => 0

        set accessor { field = value; }

        new() { }

        method<T>(p: T) { }

        plus(p) { }

        explicit as Z() { }

    }

    38. 接口声明

    interface X { }

    39. 枚举声明

    enum X { x, y = 1 }

    40. 类型别名声明

    type X = Y;

    41. 扩展声明

    extension X { }

    42. 模块声明

    module X { }

    module "name" {}

    五、 语句

    43. 判断语句

    if (x) { }

    if (x) { } else { }

    44. 循环语句

    while (x) { }

    45. 跳转语句

    break;

    continue;

    return x;

    yield x;

    46. 异常语句

    try { } catch { } finally { }

    throw "Error";

    47. 确认语句

    assert true;

    48. 表达式和空语句

    fn();

    ;

  • 相关阅读:
    Ethical Hacking
    Ethical Hacking
    Ethical Hacking
    Ethical Hacking
    Ethical Hacking
    Ethical Hacking
    Ethical Hacking
    Can you answer these queries? HDU
    Count the Colors ZOJ
    Balanced Lineup POJ
  • 原文地址:https://www.cnblogs.com/xuld/p/14764771.html
Copyright © 2011-2022 走看看