跳到主要内容

White Language 0.3.4 — 语法过渡版本

White 0.3.4 同时接受此前的声明语法与当前语言使用的语法。项目可以先更新编译器, 再分别迁移源码、编辑器支持与构建脚本,不必一次完成全部修改。

本文档中的所有示例都使用当前语法。0.3.4 以前版本所使用的源码语法与当前文档 不同,不能直接以这里的示例为准。0.3.4 可以在项目更新期间继续编译这些源码; 0.3.5 将删除兼容语法。

升级旧项目时请保留一份 0.3.4 工具链;它的发布包会一直留在 下载页面

声明

变量、参数与字段使用 : 标注类型,-> 只放在返回类型前:

let count: Int = 10;
let inferred = 10;
let explicit: Auto = 10;

func add(left: Int, right: Int) -> Int {
return left + right;
}

声明带有初始化式,并且编译器能够静态确定其类型时,可以省略类型。没有初始化式 的字段仍需明确写出类型。

class 与 interface 中的函数

class 与 interface 内声明的函数统一使用 func

class Counter {
let value: Int;

init(value: Int) {
self.value = value;
}

func get() -> Int {
return self.value;
}
}

callable 类型

参数类型仍写在括号中,callable 的返回类型移到括号后:

let callback: Function(Int) -> Int = increment;
let method: Method() -> Int = counter.get;