以LLVM 为 基础,编译成原生码。跑的应该相当快。
在必须要能与Obj-c 合作的限制下,侷限了一些能做的事。
看来是私有的,希望能够Open Source
从C# 和 Rust 借了不少东西
没有pointer
没有物件拥有者的机制
单一继承(single inherence),显式复写(explicit overriding),属性(properties)与多重界面(protocol)继承
界面可以包含实作
可以对已存在的Class 加入(extend) 界面
Lambdas 长得像 Ruby 的 block
函数式的type 和 tuple, 支援pattern matching
型别推论, 没有隐式转型
长得像 Golang 的 Dictionary
基础 module 系统
没有宏
Non-pervasive-NULL, foo?.bar(), bar只有在 foo 不是null 时才会执行. 还有 Option Monad
用let & var 来区分 变量能不能重复指派
Array 有奇怪的 copy-on-extention sematics (不太确定要怎么翻)
不知道要怎么自己实作 iterator protocol
.. & … 的 range 容易搞混
inout 参数
不是 expression 语言
没有讨论到 error handling
命名参数 长得有点像 Ocaml 的 “Olabl” 变体
默认四则运算检查, 可以用16进位来表示浮点数