D語言編譯器版本2.100

D程式語言的開發者發布了主要參考編譯器DMD 2.100.0,它支援GNU/Linux、Windows、macOS和FreeBSD系統。 編譯器程式碼根據免費的 BSL(Boost 軟體許可證)分發。

D 是靜態類型的,具有類似 C/C++ 的語法,並提供編譯語言的效能,同時借用了動態語言的一些開發效率和安全優勢。 例如,它提供對關聯數組、類型推斷、自動內存管理、平行編程、可選垃圾收集器、模板系統、元編程組件、使用 C 庫以及一些 C++ 和 Objective-C 庫的能力的支援。

新版本的變化包括:

  • D1 分支中使用的舊式運算子重載已不再使用。 取代 opNeg、opAdd_r、opAddAssign 等。 來了 opUnary、opBinary、opBinaryRight 和 opOpAssign。 舊式的運算子重載已於 2019 年棄用,並且從版本 2.100 開始將引發錯誤。
  • 自 2018 年起,delete 關鍵字已被棄用。 您應該使用 destroy 或 core.memory.__delete 函數,而不是刪除。
  • 已實現新的 @mustuse 屬性,該屬性可應用於結構體和聯合類型,作為程式碼無法處理異常時(例如,在 @nogc 區塊中)的錯誤處理的替代方法。 如果程式碼中未使用標有 @mustuse 屬性的表達式,編譯器將產生錯誤。
  • 對於靜態數組,允許使用“.tupleof”屬性來取得數組每個元素的值序列(左值)。 void foo(int, int, int) { /* … */ } int[3] ia = [1, 2, 3]; foo(ia.tupleof); // 模擬 foo(1, 2, 3); 浮動[3] fa; fa.tupleof = ia.tupleof; // 簡單賦值 fa = ia 會導致錯誤assert(fa == [1F, 2F, 3F]);

來源: opennet.ru

添加評論