Itusilẹ ti ede siseto Haxe 4.2

Itusilẹ ti ohun elo irinṣẹ Haxe 4.2 wa, eyiti o pẹlu ede siseto ipele-giga pupọ-pupọ ti orukọ kanna pẹlu titẹ agbara, alakopọ-agbelebu ati ile-ikawe boṣewa ti awọn iṣẹ. Ise agbese na ṣe atilẹyin itumọ si C ++, HashLink/C, JavaScript, C #, Java, PHP, Python ati Lua, bakanna bi akopọ si JVM, HashLink/JIT, Flash ati Neko bytecode, pẹlu iraye si awọn agbara abinibi ti aaye ibi-afẹde kọọkan. Koodu alakojo ti pin labẹ iwe-aṣẹ GPLv2, ati ile-ikawe boṣewa ati awọn ẹrọ foju HashLink ati Neko ti o dagbasoke fun Haxe ni iwe-aṣẹ labẹ iwe-aṣẹ MIT.

Ede naa jẹ orisun ikosile pẹlu titẹ to lagbara. Orun-Oorun, jeneriki ati awọn ilana siseto iṣẹ jẹ atilẹyin. Sintasi Haxe sunmo ECMAScript o si faagun rẹ pẹlu awọn ẹya bii titẹ aimi, itọkasi iru-laifọwọyi, ibaamu ilana, awọn jeneriki, ipilẹ-ipilẹ fun awọn losiwajulosehin, AST macros, GADT (Awọn oriṣi Data Algebraic Lapapọ), awọn iru abajẹ, awọn ẹya ailorukọ, irọrun awọn ọna asọye, awọn ikosile fun akojọpọ ipo, fifi metadata si awọn aaye, awọn kilasi ati awọn ikosile, interpolation okun ('Orukọ mi ni $name'), tẹ awọn paramita tuntun ('MainOkun>("foo") tuntun') ati pupọ diẹ sii. Idanwo kilasi {aimi iṣẹ akọkọ() {awọn eniyan ikẹhin = ["Elizabeth" => "Eto", "Joel" => "Apẹrẹ"]; fun (orukọ => iṣẹ ni awọn eniyan) { wa kakiri ('$ orukọ ṣe $ iṣẹ fun igbesi aye!'); } }

Awọn ẹya tuntun ni ẹya 4.2:

  • N kede awọn oniyipada aimi ati awọn iṣẹ ni ipele module, laisi iwulo lati fi ipari si wọn ni kilasi kan.
  • Atilẹyin fun awọn kilasi áljẹbrà “Ayebaye” ati awọn iṣẹ.
  • Imuse abinibi ti awọn iṣẹ variadic fun gbogbo awọn iru ẹrọ ibi-afẹde (haxe.Rest) ati afikun ti oniṣẹ imugboroja ariyanjiyan “f (... orun)”.
  • Imuse ohun iṣẹlẹ lupu fun olukuluku awọn okun ("sys.thread.Thread.iṣẹlẹ").
  • "@: inheritDoc" metadata fun jogun iru/iwe aaye.
  • Atilẹyin ọna apọju fun awọn ọna ita lori gbogbo awọn iru ẹrọ ibi-afẹde.
  • Ndari olupilẹṣẹ ti o wa labẹ iru rẹ si áljẹbrà nipa lilo metadata “@: forward.new”.
  • Fikun “EIs” onitumọ si “haxe.macro.Expr”.
  • Agbara lati ṣe iyatọ iru afoyemọ pẹlu "@:forward.variance".
  • Aṣoju ti iru “Eyikeyi” bi “Yiyipada” nigbati iyatọ ba ṣọkan.
  • Ṣafikun diẹ ninu awọn iru imukuro ipilẹ si package “haxe.exceptions”.
  • Atilẹyin fun sisopọ metadata nigbati o n kede awọn oniyipada.
  • Iṣẹ "StringTools.unsafeCharAt" ti a lo fun aṣetunṣe okun.
  • eval (onitumọ): Awọn ifikun ti a ṣafikun si “libuv” ninu package “eval.luv”.
  • eval: awọn asopọ si awọn imuse abinibi ti "Int64" ati "UInt64" nipasẹ package "eval.integers".
  • cs: UDP iho imuse.
  • cs: "cs.Syntax" module fun opopo awọn ifibọ ti C # koodu.
  • jvm: Ṣafikun asia “-D jvm.dynamic-level=x” lati ṣakoso nọmba awọn iṣapeye ti ipilẹṣẹ fun koodu imudara. 0 = ko si, 1 = aaye kika/kikọ iṣapeye, 2 = awọn ọna pipade ni akoko akopọ.
  • java, jvm: Atilẹyin fun asia "--java-lib ".
  • Python: threading API imuse.

Awọn ilọsiwaju gbogbogbo:

  • "expr is SomeType" ko nilo fifi sinu akomo.
  • Ni ayo pọ si fun "@: lilo" iru awọn amugbooro.
  • Faye gba lilo awọn amugbooro iru aimi nipasẹ “super”.
  • Agbara lati ṣeto metadata si awọn aaye "@: noDoc".
  • Iru áljẹbrà naa "Map" ti jẹ iyipada.
  • Atilẹyin fun "@: abinibi" lori awọn oluṣe enum.
  • Atilẹyin fun "@: lilo" lori iru awọn ikede ("typedefs").
  • Awọn aṣiṣe multiline lo "..." bi ìpele fun awọn ila ti o tẹle.
  • Itọkasi oriṣi ti tun ṣiṣẹ, awọn ẹya ailorukọ dara julọ ni iyipada si awọn oriṣi ti o fojuhan ati “ni pipade” nigbati iṣẹ naa ba pari.
  • Inferring iru awọn iṣẹ laisi awọn ariyanjiyan bi "()->..." dipo "Ofo->...".
  • Koko-ọrọ "iṣẹ" ni a gba laaye gẹgẹbi orukọ package.
  • Imudara inlining ti awọn nkan.
  • cs: Afikun atilẹyin fun NET 5.0.
  • cpp: Atilẹyin fun awọn olupilẹṣẹ abinibi fun awọn kilasi ita.
  • php: Fikun "php.Syntax.customArrayDecl" lati kede akojọpọ abinibi kan.
  • php: Awọn ọna ita imudojuiwọn fun orisirisi awọn iṣẹ ati awọn kilasi.
  • php: Iṣapeye imuse ti awọn ẹya ailorukọ.
  • hl: Rekọja akopo ti ko ba si ayipada si awọn modulu.
  • lua: Lilo "hx-lua-simdjson" lati parse json.
  • jvm: Dinku Sipiyu fifuye ni "sys.thread.Lock" imuse.
  • js: Imudara ibamu pẹlu Google Compiler Closure.
  • Ailewu Asan: Ro "@: nullSafety(Pa)" nigbati o ba n kede awọn oniyipada: "var @: nullSafety(Pa) v".

Pẹlupẹlu, afikun si olootu VSCode ti ni imudojuiwọn si ẹya tuntun ti olupilẹṣẹ, ninu eyiti awọn amọran ti han pẹlu iran ti awọn aaye ti o padanu ti awọn atọkun, awọn kilasi ti o rọrun ati abọtẹlẹ, ati awọn ọna ohun-ini.

orisun: opennet.ru

Fi ọrọìwòye kun