程式語言 Haxe 4.1 發布

可用的 工具包發布 哈克斯4.1,其中包括具有強類型的同名多範式高級程式語言、交叉編譯器和標準函數庫。此專案支援翻譯為C++、HashLink/C、JavaScript、C#、Java、PHP、Python 和Lua,以及編譯為JVM、HashLink/JIT、Flash 和Neko 字節碼,並可存取每個目標平台的本機功能。編譯程式碼 分發者 根據 GPLv2 許可證,以及為 Haxe 開發的標準庫和虛擬機 哈希連結 и 在麻省理工學院的許可下。

語言是 表達導向 具有較強的打字能力。支援物件導向、通用和函數式程式設計技術。 Haxe 語法接近 ECMAScript 且 展開 其功能包括靜態型別、自動型別推斷、模式比對、泛型、基於迭代器的for 迴圈、AST 巨集、GADT(廣義代數資料型別)、抽象型別、匿名結構、簡化數組定義、條件編譯表達式、將元資料附加到欄位、類別和表達式、字串插值(“'My name is $name'”)、類型參數('new Main("foo")')以及 蒙諾戈耶德魯戈耶.

類別測試{
靜態函數 main() {
最終人=[
“伊麗莎白”=>“編程”,
“喬爾”=>“設計”
];

for (name => people 中的工作) {
Trace(‘$name 靠$工作謀生!’);
}
}
}

4.1版本新功能:

  • 添加尾遞歸優化。
  • 新增了新的統一 API 用於異常處理。
  • 結構「try {} catch(e) {}」可以當作「try {} catch(e: haxe.Exception) {}」的簡寫。
  • 在 eval 解釋器中新增了 SSL 支援。
  • 目標 JVM 不再被視為實驗性的。
  • 對於語言伺服器協議,新增了對「轉到實作」和「尋找引用」功能的支援。
  • 改進了生成程式碼中臨時局部變數的命名。刪除了多餘的「返回」;在沒有回傳值的箭頭函數中。
  • 欄位上允許存取組合(get、預設)(僅限 getter、預設賦值行為)。
  • 允許欄位使用遞增和遞減運算符 抽象類型.
  • 使用匿名迭代器改進了 for 迴圈的內聯。
  • Node.js:改進了 ES5 的 StringMap 實作。
  • js:let 變數的產生已新增至編譯器選項「-D js-es=6」中,ES6 類別的產生已得到改進。
  • lua:「StringIterator」優化,錯誤處理改進。
  • php:針對基本型別最佳化了「Std.isOfType」。
  • php:產生的陣列現在實作本機介面「Iterator」、「IteratorAggregate」、「Countable」。
  • cs:新增了元資料「@: assemblyMeta」和「@: assemblyStrict」。
  • python:在匿名物件中加入了「__contains__」的實現
    和“__getitem__”,這允許它們在生成的程式碼中用作字典。

  • jvm:由於在物件用作匿名結構(阻止動態屬性查找)的情況下存取類型化函數和生成附加介面的新方法,顯著提高了效能:
    程式語言 Haxe 4.1 發布

標準庫的改進:

  • 新增了“Array.contains”功能。
  • 新增了“Array.keyValueIterator”,它實現了數組的鍵值迭代(“for (key => value in array)”)。
  • 新增了約束類型“haxe.Constraints.NotVoid”。
  • “findIndex”和“foldi”函數已新增至“Lambda”類別。
  • 實作了「haxe.ds.HashMap」的「陣列存取」(透過「arr[i]」存取)和鍵值迭代。
  • jvm:實作了「StringMap」、「sys.thread.Lock」、「sys.thread.Thread」的 JVM 特定版本。
  • java/jvm:「haxe.crypto」模組使用「MD5」、「SHA-1」和「SHA-256」的本機實作。
  • 巨集:新增了「haxe.macro.Context.containsDisplayPosition(pos)」。
  • nullsafety:「嚴格」模式現在被視為單線程;新增了“StrictThreaded”模式。
  • 「Std.is」已被棄用,取而代之的是「Std.isOfType」。
  • 新增了在閉包中使用沒有值的局部變數時的警告。
  • js:「untyped __js__(code, args)」已棄用,替換為「js.Syntax.code(code, args)」。
  • php/neko:「neko.Web」和「php.Web」已被棄用,稍後將移至「hx4compat」庫。

在下一個版本中 已計劃:

  • 套件管理器改進 哈克斯利布.
  • 基於非同步系統API 庫夫.
  • 協程。
  • 聲明模組化靜態函數和變數而不創建類別(已在夜間建置中可用)。

來源: opennet.ru

添加評論