Tso tawm cov lus programming Haxe 4.2

Ib qho kev tso tawm ntawm Haxe 4.2 toolkit muaj, uas suav nrog ntau lub ntsiab lus siab-qib programming lus ntawm tib lub npe nrog kev ntaus ntawv muaj zog, cross-compiler thiab lub tsev qiv ntawv qauv ntawm kev ua haujlwm. Qhov project txhawb kev txhais lus rau C ++, HashLink / C, JavaScript, C #, Java, PHP, Python thiab Lua, nrog rau kev muab tso ua ke rau JVM, HashLink / JIT, Flash thiab Neko bytecode, nrog rau kev nkag mus rau cov peev txheej ntawm txhua lub hom phiaj. Cov kab ntawv sau tau muab faib raws li GPLv2 daim ntawv tso cai, thiab cov tsev qiv ntawv qauv thiab HashLink thiab Neko virtual tshuab tsim rau Haxe tau tso cai raws li MIT daim ntawv tso cai.

Cov lus yog qhia-oriented nrog kev ntaus ntawv muaj zog. Object-oriented, generic thiab functional programming cov txheej txheem yog txaus siab. Haxe's syntax yog ze rau ECMAScript thiab txuas nws nrog cov yam ntxwv xws li static typing, auto-type inference, pattern matching, generics, iterator-based for loops, AST macros, GADT (Generalized Algebraic Data Types), hom abstract, anonymous structures, simplified Cov ntsiab lus arrays, kab lus rau kev sib sau ua ke, txuas metadata rau cov teb, cov chav kawm thiab cov kab lus, txoj hlua interpolation ('Kuv lub npe yog $ lub npe'), hom tsis ('tshiab Main ("foo")') thiab ntau ntxiv. class Test { static function main() { zaum kawg neeg = [ "Elizabeth" => "Programming", "Joel" => "Design" ]; rau (npe => hauj lwm hauv tib neeg) { trace('$name does $job for a living!'); }}}}

Cov yam ntxwv tshiab hauv version 4.2:

  • Tshaj tawm qhov hloov pauv zoo li qub thiab ua haujlwm ntawm qib module, tsis tas yuav qhwv lawv hauv chav kawm.
  • Txhawb rau "classic" cov chav kawm paub daws teeb meem thiab ua haujlwm.
  • Kev siv haiv neeg ntawm kev ua haujlwm sib txawv rau txhua lub hom phiaj platform (haxe.Rest) thiab ntxiv cov lus sib cav nthuav dav "f(...array)".
  • Kev nqis tes ua ntawm qhov xwm txheej voj rau ib tus xov tooj (β€œsys.thread.Thread.events”).
  • "@:inheritDoc" metadata rau kev txais cov ntaub ntawv hom / teb.
  • Txoj kev overloading txhawb rau cov txheej txheem sab nraud ntawm txhua lub hom phiaj platform.
  • Kev xa mus rau tus tsim qauv hauv qab nws hom mus rau qhov kev paub daws teeb meem siv "@:forward.new" metadata.
  • Ntxiv "EIs" constructor rau "haxe.macro.Expr".
  • Muaj peev xwm ua rau hom kev paub daws teeb meem nrog "@:forward.variance".
  • Kev sawv cev ntawm "Txhua yam" raws li "Dynamic" thaum sib koom ua ke sib txawv.
  • Ntxiv qee qhov kev zam tshwj xeeb rau pob "haxe.exceptions".
  • Kev them nyiaj yug rau txuas metadata thaum tshaj tawm cov hloov pauv.
  • Muaj nuj nqi "StringTools.unsafeCharAt" siv rau txoj hlua iteration.
  • eval (tus neeg txhais lus): Ntxiv bindings rau "libuv" hauv pob "eval.luv".
  • eval: khi rau ib txwm siv ntawm "Int64" thiab "UInt64" ntawm pob "eval.integers".
  • cs: UDP qhov (socket) siv.
  • cs: "cs.Syntax" module rau inline insertions ntawm C# code.
  • jvm: Ntxiv "-D jvm.dynamic-level=x" chij los tswj cov naj npawb ntawm cov kev tsim kho kom zoo rau cov lej dynamic. 0 = tsis muaj, 1 = teb nyeem / sau optimization, 2 = txoj kev kaw ntawm lub sijhawm sib sau.
  • java, jvm: Txhawb rau "--java-lib " chij.
  • python: threading API siv.

Kev txhim kho dav dav:

  • "expr yog SomeType" tsis xav tau wrapping hauv kab lus.
  • Ntxiv qhov tseem ceeb rau "@: siv" hom txuas ntxiv.
  • Tso cai siv cov hom zoo li qub txuas ntxiv ntawm "super".
  • Muaj peev xwm teeb tsa metadata rau "@:noDoc" teb.
  • Hom kev paub daws teeb "Daim ntawv qhia" yog ua kom hloov pauv.
  • Txhawb rau "@: haiv neeg" ntawm enum constructors.
  • Txhawb rau "@: siv" ntawm cov lus tshaj tawm ("typedefs").
  • Multiline yuam kev siv "..." ua ntej rau kab tom ntej.
  • Hom kev xav tau raug rov ua haujlwm dua, cov qauv tsis qhia npe tau zoo dua hloov mus rau hom tsis meej thiab "kaw" thaum ua tiav.
  • Inferring hom kev ua haujlwm yam tsis muaj kev sib cav li "()-> ..." es tsis txhob "Void-> ...".
  • Lo lus "function" tau tso cai ua lub npe pob.
  • Txhim kho inlining ntawm cov khoom.
  • cs: Ntxiv kev txhawb nqa rau .NET 5.0.
  • cpp: Kev them nyiaj yug rau cov neeg tsim khoom ib txwm muaj rau cov chav kawm sab nraud.
  • php: Ntxiv "php.Syntax.customArrayDecl" los tshaj tawm ib haiv neeg array.
  • php: Hloov kho lwm txoj hauv kev rau ntau yam haujlwm thiab chav kawm.
  • php: Optimized siv cov qauv tsis qhia npe.
  • hl: Hla kev muab tso ua ke yog tias tsis muaj kev hloov pauv rau cov qauv.
  • lua: Using "hx-lua-simdjson" to parse json.
  • jvm: Txo CPU load hauv "sys.thread.Lock" kev siv.
  • js: Txhim kho kev sib raug zoo nrog Google Kaw Compiler.
  • Null Safety: Xav txog "@:nullSafety(Off)" thaum tshaj tawm cov hloov pauv: "var @:nullSafety(Off) v".

Tsis tas li ntawd, qhov sib ntxiv rau VSCode editor tau hloov kho mus rau qhov tshiab version ntawm lub compiler, nyob rau hauv uas cov lus qhia tau tshwm sim nrog rau tiam ntawm cov teb uas ploj lawm ntawm interfaces, cov chav kawm yooj yim thiab paub daws teeb, nrog rau cov cuab yeej txoj kev.

Tau qhov twg los: opennet.ru

Ntxiv ib saib