Езикова справка
Синтаксис, типове, семантика, система от ефекти, спецификации и вградени функции.
Стойности и типове
Прости типове: i64, f64, bool, str. Целите литерали са десетични, шестнайсетични (0x), двоични (0b) и осмични (0o). Типовете се извеждат от литерала. [T] е захар за Vec<T>.
Функции
Функциите се дефинират с fn. Параметрите са име: тип. Типът на връщане е след ->. Всяка програма има main. Функция без тяло е предварителна декларация.
Управление на потока
if/else, while и for-in по диапазон. Точките и запетаите са незадължителни. Ранният return е обичайният път за грешка.
Структури, impl, генерици и трейтове
Структурите са съставни типове с C-съвместима подредба. impl закача методи. В 0.9 има генерични функции и структури (мономорфизация) и traits/impl.
Enum-и и съпоставяне по образец
Enum-ите са маркирани обединения. match е изчерпателен — компилаторът проверява всички случаи. _ е маска за останалото.
Спецификации — първо какво, после как
spec казва КАКВО трябва да прави функцията. Имплементацията следва. --verify доказва или опровергава requires/ensures статично — с контрапример или с честен UNKNOWN.
Ефекти — страничните ефекти в типа
Ефектите са типови измерения. Необработен ефект е грешка при компилация. В 0.9 има payload-и на ефекти (!E(T), raise/catch) и !Overflow като типов ефект: ако го пропуснеш, твърдиш аритметична безопасност.
Успоредност — go/join с !Par
go пуска OS нишка; join чака резултата. !Par маркира успоредно изпълнение. Няма скрити пулове. --verify разсъждава за fork–join и протоколите на handle-ите.