Famoahana ny fiteny fandaharana Haxe 4.1

Available famoahana fitaovana Haxe 4.1, izay ahitana ny fiteny fandaharana avo lenta multi-paradigma amin'ny anarana mitovy amin'ny fanoratana matanjaka, mpanangona cross-compiler ary tranomboky mahazatra. Ny tetikasa dia manohana ny fandikana amin'ny C ++, HashLink/C, JavaScript, C#, Java, PHP, Python ary Lua, ary koa ny fanangonana amin'ny JVM, HashLink/JIT, Flash ary Neko bytecode, miaraka amin'ny fidirana amin'ny fahaiza-miaina amin'ny sehatra kendrena tsirairay. Code compiler nozarain'i eo ambanin'ny fahazoan-dΓ lana GPLv2, ary ny tranomboky mahazatra sy milina virtoaly novolavolaina ho an'ny Haxe HashLink ΠΈ neko eo ambanin'ny lisansa MIT.

Ny fiteny dia mitodika amin'ny fanehoan-kevitra amin'ny fanoratana mafy. Tohanana ny teknika fandaharana miompana amin'ny tanjona, generic ary functional. Haxe syntax dia akaiky ny ECMAScript sy Mitatra ny ny endri-javatra toy ny fanoratana static, inference autotype, mampifanaraka ny lamina, generics, miompana amin'ny iterator ho an'ny tadivavarana, macros AST, GADT (karazana angona algebra ankapobeny), karazana abstract, rafitra tsy mitonona anarana, famaritana array notsorina, fehezanteny fanangonana fepetra, fametahana metadata amin'ny saha , kilasy sy fomba fiteny, interpolation string (β€œ'Ny anarako dia $name'”), karazana masontsivana (' Main vaovao ("foo")') ary betsaka kokoa.

kilasy fitsapana {
asa static main() {
olona farany = [
"Elizabeth" => "Fandrindrana",
"Joel" => "Famolavolana"
];

ho an'ny (anarana => asa amin'ny olona) {
trace('$name manao $asa ho fivelomana!');
}
}
}

Endri-javatra vaovao amin'ny version 4.1:

  • Nanampy fanatsarana ny famerenana ny rambony.
  • Nampiana API mitambatra vaovao ho an'ny fikarakarana manokana.
  • Ny fananganana "try {} catch(e) {}" dia avela ho fanafohezana ny "try {} catch(e: haxe.Exception) {}".
  • Nanampy fanohanana SSL ho an'ny mpandika teny eval.
  • Ny tanjona JVM dia tsy heverina ho fanandramana intsony.
  • Ho an'ny Language Server Protocol, dia nampiana ny fanohanana ny "Goto Implementation" sy ny "Find references".
  • Nohatsaraina ny anaran'ireo fari-pahalalana eo an-toerana vonjimaika amin'ny kaody vokarina. Nesorina ny "fiverenana" miverimberina; amin'ny fiasan'ny zana-tsipΓ¬ka tsy misy sanda miverina.
  • Ny fitambarana fidirana (mahazo, default) dia avela amin'ny saha (mpahazo ihany, fitondran-tena fanendrena default).
  • Avelao ny mpandraharaha mampitombo sy mampihena ny saha karazana abstract.
  • Nohatsaraina ny inlining ny for loops amin'ny fampiasana iterator tsy mitonona anarana.
  • js: Fanatsarana ny fampiharana StringMap ho an'ny ES5.
  • js: Ny famokarana let variables dia nampidirina amin'ny safidy compiler "-D js-es=6", nohatsaraina ny famokarana kilasy ES6.
  • lua: "StringIterator" nohatsaraina, nihatsara ny fitantanana ny fahadisoana.
  • php: Optimized "Std.isOfType" ho an'ny karazana fototra.
  • php: Mampihatra ny interface "Iterator", "IteratorAggregate", "Countable" izao ny arrays.
  • cs: Nampiana metadata "@:assemblyMeta" sy "@:assemblyStrict".
  • python: nampiana fampiharana ny "__contains__" amin'ny zavatra tsy fantatra anarana
    ary "__getitem__", izay ahafahan'izy ireo ampiasaina ho diksionera ao amin'ny code novokarina.

  • jvm: Fampisehoana nohatsaraina be dia be noho ny fomba vaovao hidirana amin'ny asa soratana sy ny famoronana fifandraisana fanampiny rehefa misy zavatra ampiasaina ho rafitra tsy mitonona anarana (voasakana ny fitadiavana fananana mavitrika):
    Famoahana ny fiteny fandaharana Haxe 4.1

Fanatsarana ny tranomboky mahazatra:

  • Nampiana asa "Array.contains".
  • Nampiana "Array.keyValueIterator", izay manatanteraka famerenam-bidy ho an'ny array ("for (key => value in array)").
  • Nampiana karazana faneriterena "haxe.Constraints.NotVoid".
  • Ny fiasa "findIndex" sy "foldi" dia nampiana tao amin'ny kilasy "Lambda".
  • Nampiharina ny "fahazoan-dΓ lana" (fidirana amin'ny alalan'ny "arr[i]") sy ny famerenan'ny sanda fototra ho an'ny "haxe.ds.HashMap".
  • jvm: Nametraka dikan-teny JVM manokana an'ny "StringMap", "sys.thread.Lock", "sys.thread.Thread".
  • java/jvm: Nampiasaina ny fampiasana ny "MD5", "SHA-1" ary "SHA-256" ho an'ny maody "haxe.crypto".
  • macro: Nampiana "haxe.macro.Context.containsDisplayPosition(pos)".
  • nullsafety: Ny fomba "henjana" dia raisina ho toy ny kofehy tokana; nanampy ny fomba "StrictThreaded".
  • Ny "Std.is" dia tsy ampiasaina ho an'ny "Std.isOfType".
  • Nampiana fampitandremana rehefa mampiasa variables eo an-toerana tsy misy sanda amin'ny fanakatonana.
  • js: "tsy voasokajy __js__(code, args)" dia tsy ampiasaina, nosoloina "js.Syntax.code(code, args)".
  • php/neko: "neko.Web" sy "php.Web" dia nesorina ary hafindra any amin'ny tranomboky "hx4compat" any aoriana.

Amin'ny famoahana manaraka dia nomanina:

  • Fanatsarana ny mpitantana fonosana haxelib.
  • Asynchronous rafitra API mifototra libuv.
  • Coroutines.
  • Fanambarana ny fiasa sy ny fari-piadidiana modular nefa tsy mamorona kilasy (efa misy amin'ny fananganana isan'alina).

Source: opennet.ru

Add a comment