01
静态类型
类型可以显式写出,也可以从初始化式推导。推导在编译期完成,不会在运行时增加类型信息。
let count = 10;
const limit: Int = 64;White
White 是一门编译为原生程序的静态类型语言。编译器使用 White 编写,并通过 LLVM 完成代码生成。
class Greeting {
let name: String;
init(name: String) {
self.name = name;
}
func write() -> Void {
print("hello, ", self.name);
}
}
func main() -> Int {
let greeting = Greeting("White");
greeting.write();
return 0;
}
语言
White 具有静态类型、class、interface、ARC、可失败返回值,以及调用原生库的 FFI。语法目前保持得比较小。
类型可以显式写出,也可以从初始化式推导。推导在编译期完成,不会在运行时增加类型信息。
let count = 10;
const limit: Int = 64;可能失败的函数返回 T?。调用时使用 ?,再在合适的位置用 catch 处理错误。
let text: String = input("name: ")?;
catch(err) { print(err); }String、class、interface 和闭包使用 ARC 管理。class 可以定义 deinit,用于释放文件、句柄等资源。
deinit() {
file.close();
}平台
发布流水线会为这里列出的目标构建并测试 wlc。跨系统编译仍需要目标系统的 SDK 或 sysroot。
x86-64 / x86
x86-64 / x86 / AArch64 / ARMv7
Apple silicon / Intel
工具
ARC 还不能回收循环引用,弱引用尚未实现,泛型系统与标准库也没有完成。White 目前还不适合一般的生产环境。
阅读限制