Skip to content

从关键字看语法

xuld edited this page Jan 13, 2014 · 4 revisions

if else for do while switch case loop unitl break continue goto return

以上为基本的逻辑语句。

try catch finally throw

以上为基本的错误处理语句。

void int string short byte long float double char bool object

以上为内置的数据类型。

var

用于自动推导类型。

var i = 1;  //  var 即 int

true false null

以上为内置的常量。

in to

for(var i in list){}
for(var i = 1 to 100){}

with yield await unchecked checked runonce or

以上为根据特定需求使用的关键字(语法糖), 不使用这些关键字一样可以写出完整程序。

new

创建对象。

as

语言中所有的输入一个变量输出等效的其它类型等效变量的操作,都使用 as 操作符。如:

1 as string // "1", 同其它语言的 1.toString()
"1" as int  // 1, 同其它语言的 int.parse("1")
1 as float  // 1.0, 同其它语言的 (float)1

如果自定义的类需要支持 as 操作符,通过操作符重载函数。

class A {
    
    // A 转其它类型。
    as B() {
        return this.foo();
    }
    
    // 其它类型(如B)转为 A 。
    static as A(B b) {
        return b.foo();
    }
	
}

同时,为了方便书写,还支持以下语法糖:

string(1) // 即 1 as string

as 操作符对任何转换失败的场景都会抛出 CastExpection 。

为 as 操作符属性添加 @implicit 注解,则表示这个转换可以被隐式调用。

is

所有类型判断使用 is 操作符。

1 is int
1 is! int

import

导入包或名字空间或类。

params ref out

以上为参数的修饰符。

class struct interface enum namespace extend

以上为面向接口使用的关键字。

protected public private internal

以上为权限修饰符。

static virtual override const abstract once extern partial final readonly

以上为成员修饰符。

this base

以上为面向接口使用别名关键字。

get set value

在属性中特殊作用的关键字。