Ħruġ tal-lingwa ta' programmar Haxe 4.2

Rilaxx tas-sett ta 'għodda Haxe 4.2 huwa disponibbli, li jinkludi l-lingwa ta' programmar ta 'livell għoli multi-paradigma tal-istess isem b'ittajpjar qawwi, cross-compiler u librerija standard ta' funzjonijiet. Il-proġett jappoġġja t-traduzzjoni għal C++, HashLink/C, JavaScript, C#, Java, PHP, Python u Lua, kif ukoll kumpilazzjoni għal JVM, HashLink/JIT, Flash u Neko bytecode, b'aċċess għall-kapaċitajiet indiġeni ta 'kull pjattaforma fil-mira. Il-kodiċi tal-kompilatur huwa mqassam taħt il-liċenzja GPLv2, u l-librerija standard u l-magni virtwali HashLink u Neko żviluppati għal Haxe huma liċenzjati taħt il-liċenzja MIT.

Il-lingwa hija orjentata lejn l-espressjoni b'tajpjar qawwi. Tekniki ta' programmazzjoni orjentati lejn l-oġġetti, ġeneriċi u funzjonali huma appoġġjati. Is-sintassi ta' Haxe hija qrib l-ECMAScript u testendiha b'karatteristiċi bħal tajpjar statiku, inferenza tat-tip awtomatiku, tqabbil tal-mudelli, ġeneriċi, for loops ibbażati fuq iteratur, AST macros, GADT (Tipi ta' Dejta Alġebrin Ġeneralizzat), tipi astratti, strutturi anonimi, simplifikati definizzjonijiet arrays, espressjonijiet għal kumpilazzjoni kondizzjonali, twaħħil ta' metadata ma' oqsma, klassijiet u espressjonijiet, interpolazzjoni ta' string ('Ismi $isem'), parametri tat-tip ('New Main (“foo”)’) u ħafna oħrajn. Class Test { static function main() { final people = [ "Elizabeth" => "Programmazzjoni", "Joel" => "Disinn" ]; għal (isem => xogħol fin-nies) { trace('$isem jagħmel $job għal għajxien!'); } } }

Karatteristiċi ġodda fil-verżjoni 4.2:

  • Id-dikjarazzjoni ta' varjabbli statiċi u funzjonijiet fil-livell tal-modulu, mingħajr il-ħtieġa li tkebbebhom fi klassi.
  • Appoġġ għal klassijiet u funzjonijiet astratti "klassiċi".
  • Implimentazzjoni nattiva tal-funzjonijiet variadic għall-pjattaformi kollha fil-mira (haxe.Rest) u żieda tal-operatur ta 'espansjoni tal-argument "f(... array)".
  • Implimentazzjoni ta' ċirku ta' avveniment għal ħjut individwali (“sys.thread.Thread.events”).
  • Metadejta "@:inheritDoc" għad-dokumentazzjoni tat-tip/qasam li tirret.
  • Appoġġ ta 'tagħbija żejda ta' metodi għal metodi esterni fuq il-pjattaformi kollha fil-mira.
  • Tgħaddi l-kostruttur sottostanti tat-tip tiegħu lill-astratt bl-użu tal-metadejta “@:forward.new”.
  • Miżjud "EIs" kostruttur għal "haxe.macro.Expr".
  • Kapaċità li tagħmel varjant tat-tip astratt b'"@:forward.variance".
  • Rappreżentazzjoni tat-tip "Kull" bħala "Dinamika" meta tgħaqqad il-varjazzjoni.
  • Żieda xi tipi bażiċi ta 'eċċezzjoni mal-pakkett "haxe.exceptions".
  • Appoġġ għat-twaħħil tal-metadejta meta jiġu ddikjarati varjabbli.
  • Funzjoni "StringTools.unsafeCharAt" użata għall-iterazzjoni ta' string.
  • eval (interpretu): Żieda rbit għal "libuv" fil-pakkett "eval.luv".
  • eval: rbit ma' implimentazzjonijiet indiġeni ta' "Int64" u "UInt64" permezz tal-pakkett "eval.integers".
  • cs: Implimentazzjoni tas-socket UDP.
  • cs: "cs.Syntax" modulu għal inserzjonijiet inline ta 'kodiċi C#.
  • jvm: Żid il-bandiera "-D jvm.dynamic-level=x" biex tikkontrolla n-numru ta 'ottimizzazzjonijiet iġġenerati għall-kodiċi dinamiku. 0 = xejn, 1 = qasam qari/kitba ottimizzazzjoni, 2 = għeluq metodu fil-ħin tal-kompilazzjoni.
  • java, jvm: Appoġġ għall-bandiera "--java-lib <direttorju>".
  • python: implimentazzjoni tal-API tal-kamini.

Titjib ġenerali:

  • "expr is SomeType" ma teħtieġx tgeżwir fil-parentesi.
  • Żieda fil-prijorità għall-estensjonijiet tat-tip "@:using".
  • Jippermetti l-użu ta 'estensjonijiet tat-tip statiku permezz ta' "super".
  • Kapaċità li tissettja metadejta għal oqsma “@:noDoc”.
  • It-tip astratt "Mappa" isir tranżittiv.
  • Appoġġ għal "@:native" fuq il-kostrutturi enum.
  • Appoġġ għal "@:using" fuq dikjarazzjonijiet tat-tip ("typedefs").
  • Żbalji multiline jużaw "..." bħala prefiss għal-linji sussegwenti.
  • L-inferenza tat-tip ġiet maħduma mill-ġdid, l-istrutturi anonimi huma kkonvertiti aħjar għal tipi espliċiti u "magħluqa" meta titlesta l-funzjoni.
  • Jiġi dedott it-tip ta' funzjonijiet mingħajr argumenti bħala "()->..." minflok "Void->...".
  • Il-kelma prinċipali "funzjoni" hija permessa bħala isem tal-pakkett.
  • Inlining imtejjeb ta 'oġġetti.
  • cs: Appoġġ miżjud għal .NET 5.0.
  • cpp: Appoġġ għal kostrutturi indiġeni għal klassijiet esterni.
  • php: Miżjud "php.Syntax.customArrayDecl" biex tiddikjara firxa nattiva.
  • php: Metodi esterni aġġornati għal diversi funzjonijiet u klassijiet.
  • php: Implimentazzjoni ottimizzata ta' strutturi anonimi.
  • hl: Aqbeż il-kumpilazzjoni jekk ma jkunx hemm bidliet fil-moduli.
  • lua: Uża "hx-lua-simdjson" biex teżamina json.
  • jvm: Tnaqqis tat-tagħbija tas-CPU fl-implimentazzjoni "sys.thread.Lock".
  • js: Kompatibilità mtejba mal-Google Closure Compiler.
  • Sigurtà Null: Ikkunsidra "@:nullSafety(Off)" meta tiddikjara varjabbli: "var @:nullSafety(Off) v".

Ukoll, iż-żieda mal-editur VSCode ġiet aġġornata għall-verżjoni l-ġdida tal-kompilatur, li fiha dehru ħjiel bil-ġenerazzjoni ta 'oqsma neqsin ta' interfaces, klassijiet sempliċi u astratti, kif ukoll metodi ta 'proprjetà.

Sors: opennet.ru

Ixtri hosting affidabbli għal siti bi protezzjoni DDoS, servers VPS VDS 🔥 Ixtri hosting ta' websajts affidabbli bi protezzjoni DDoS, servers VPS VDS | ProHoster