Nim 0.20 版本可以被視為第一個穩定 1.0 版本的候選版本,它包含了形成第一個提交語言狀態的第一個穩定分支所需的幾個破壞互通性的變更。 1.0 版被認為是一個穩定的、長期支援的版本,將保證在該語言的穩定部分保持向後相容性。 另外,編譯器還將提供實驗模式,其中將開發可能違反向後相容性的新功能。
Nim 0.20 中提出的變更包括:
- “Not”現在總是一元運算符,即現在不允許使用「assert(not a)」這樣的表達式,只允許「assert not a」;
- 在編譯階段啟用對整數和實數轉換的嚴格檢查,即表達式「const b = uint16(-1)」現在將導致錯誤,因為 -1 無法轉換為無符號整數類型;
- 提供了常數和循環變數的元組解包。
例如,現在您可以使用「const (d, e) = (7, "eight")」和「for (x, y) in f」等賦值; - 提供哈希和表的預設初始化。 例如,聲明“var s: HashSet[int]”後,您可以立即執行“s.incl(5)”,這之前會導致錯誤;
- 改進了與“case”運算符和數組索引越界相關問題的錯誤訊息;
- 禁止在迭代期間更改表長度。
來源: opennet.ru