以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進位來表示浮點數