Ntọhapụ nke asụsụ mmemme Haxe 4.0

Dị mwepụta ngwa ngwa Haxe 4.0, nke na-agụnye multi-paradigm elu-larịị mmemme asụsụ nke otu aha na ike dee, a cross-compiler na a ọkọlọtọ ọba akwụkwọ nke ọrụ. Ihe oru ngo a na-akwado ntụgharị asụsụ na C++, HashLink/C, JavaScript, C#, Java, PHP, Python na Lua, yana nchịkọta na JVM, HashLink/JIT, Flash na Neko bytecode, na ịnweta ikike nke ala nke ikpo okwu ọ bụla. Koodu nchịkọta kesara site n'okpuru ikike GPLv2, yana ọbá akwụkwọ ọkọlọtọ na igwe mebere maka Haxe neko n'okpuru ikike MIT.

Asụsụ bụ na-ekwu okwu na-eji ike dee. A na-akwado echiche mmemme dabere n'ihe, mkpokọta na arụ ọrụ.
Haxe syntax dị nso na ECMAScript na gbasaa atụmatụ ya dị ka akara static, inference autotype, ndakọrịta ụkpụrụ, generics, iterator dabere maka loops, AST macros, GADT (Generalized Algebraic Data Types), ụdị nkịtị, ahaghị aha, nkọwa nhazi dị mfe, okwu mkpokọta ọnọdụ, na-etinye metadata na ubi. , klaasị na okwu, eriri interpolation ('Aha m bụ $name'), pịnye paramita ("Ugboro ọhụrụ" ('foo')"), na ọtụtụ ihe ọzọ.

Nnwale klaasị {
static function main() {
ndị mmadụ = [
"Elizabeth" => "Mmemme",
"Joel" => "Nhazi"
];

maka (aha na people.keys()) {
var ọrụ = ndị mmadụ [aha];
trace('$ aha na-eme $ ọrụ maka ndụ!');
}
}
}

Main ihe ọhụrụ ụdị 4.0:

  • Ọhụrụ syntax maka ịkọwapụta ụdị ọrụ "(aha: eriri, afọ: Int) ->Bool" ma ọ bụ "(string, Int) ->Bool" kama "string->Int->Bool".
  • Akara ọrụ syntax bụ "(a, b) -> a + b" kama "ọrụ(a, b) weghachi a + b".
  • Nchedo megide nsogbu metụtara iji ụkpụrụ Null (njirimara nnwale, enyere aka maka mpaghara ụfọdụ, klaasị ma ọ bụ ngwugwu).
  • Isi okwu "ikpeazụ" bụ maka mpaghara klaasị na mgbanwe mpaghara na-enweghị ike ịgbanwe. Enwere ike iji "ikpeazụ" kọwaa ọrụ iji gbochie ha ịbụ ndị ihe nketa gabigara ha yana maka klaasị/mmekọrịta nke enweghị ike iketa.
  • support Ụkpụrụ Unicode maka ụdị ntọala "string" na ebumnuche mkpokọta niile ma e wezụga Neko.
  • Onye ntụgharị okwu arụnyere n'ime ka edegharịrị site na ọkọ, nke na-abịa ugbu a n'okpuru aha Nyochaa. Ekele maka onye ntụgharị okwu ọhụrụ, scripts na macros na-agba ọsọ ọsọ ọsọ. A na-akwado ọnọdụ nbizi mmekọrịta.
  • Sistemụ ebumnuche ọhụrụ maka mkpokọta (ebumnuche) Hashlink - Oge ọsọ ọsọ dị elu emebere maka Haxe, na-akwado mkpokọta bytecode maka JIT ma ọ bụ C, nwere njikọ dị mfe na C, yana ịnweta ụdị ọnụọgụ na nrịbama dị ala.
  • Ihe mgbaru ọsọ JVM ọhụrụ - na-enye gị ohere ịmepụta jvm bytecode site na ịwụpụ usoro nchịkọta koodu Java site na ịgbakwunye ọkọlọtọ "-D jvm" mgbe ị na-ezubere na Java.
  • Ikike nke inline-ebuga n'ebe a na-akpọ ọrụ ma ọ bụ ndị na-ewu ụlọ, ọ bụrụgodị na ekwupụtaghị ha dị ka ndị dị otú ahụ.
  • Enwere ike itinye ya static extensions mgbe ị na-ekwupụta ụdị (dị ka "enum") site na iji "@: iji (ụzọ.ToExtension)".
  • Ụdị abstract na-akwado ụdị "set" nke onye ọrụ "@:op(ab)" iji bugharịa okwu "obj.foo = mmanya".
  • "for" loop syntax ugbu a na-akwado ntugharị igodo-uru: "maka (key => uru na mkpokọta) {}".
  • Nkwado maka iji akara dị ka xml na okwu: "var a = ‹hi/›;. Maka ugbu a, njirimara a dị naanị maka iji macros atụgharị ma nọ na nhazi nhazi.
  • Okwu syntax maka mpaghara nhọrọ na nkọwa “zuru oke” nke ụdị nhazi a na-amaghị aha bụ: “{ var ?f:Int; }" (ọzọ na nkenke "{ ?f:Int }").
  • Ụkpụrụ Enum nwere ike bụrụ ụkpụrụ ndabara maka arụmụka ọrụ: "ọrụ foo‹T›(nhọrọ: Nhọrọ ‹T› = Ọ dịghị)".
  • "enum abstract Name(BasicType) {}" syntax anaghịzi achọ prefix "@:" na "enum".
  • Ịnweta nọmba akpaaka maka ọnụọgụ abstract:

    enum abstract Foo(Int) {
    var A; // 0
    var B; // 1
    }
    enum abstract Bar (Ụdọ) {
    var A; // "A"
    var B; // "B"
    }

  • Isi okwu "extern" anaghịzi achọ iji prefix "@:".
  • wepụrụ nhọrọ ahụ"ihe omuma Dynamic" iji nweta mpaghara klaasị site na eriri. Dị maka klaasị mpụga ma ọ bụ site na mmejuputa ya site na ụdị nkịtị.
  • Agbakwunyere syntax "A & B" maka ụdị nkwụsịtụ, nke na-emetụta naanị ụlọ na-amaghị aha yana ụdị mmachi oke. Ewepụla syntax mgbochi ochie.
  • Ịmepụta ọnọdụ "Map" efu dị site na syntax "var map: Map‹Int, String› = [];" yiri n'usoro.
  • Nhazi data agbakwunyere "haxe.ds.ReadOnlyArray".
  • Metadata nwere ike nwee oghere aha ("@: prefix.name function() {…}"). N'otu aka ahụ na nkọwa: "#if ( some.flag ... #end".
  • Protocol ọrụ ọhụrụ maka IDE ejiri na ngwa mgbakwunye maka VSCode.
  • Nkọwa mpụga emelitere (mpụta) maka API Weebụ wee tinye ndị na-efu efu.

isi: opennet.ru

Tinye a comment