Siideynta luuqadda barnaamijka Haxe 4.0

La heli karo xirmada qalabka siideynta Haxe 4.0, oo ay ku jiraan luqadda barnaamijyada heerka sare ee badan ee isku magaca ah oo leh qoraal xoog leh, isku-dubarid iyo maktabad hawleed caadi ah. Mashruucu wuxuu taageeraa tarjumaada C++, HashLink/C, JavaScript, C #, Java, PHP, Python iyo Lua, iyo sidoo kale isku-dubarid JVM, HashLink/JIT, Flash iyo Neko bytecode, iyadoo laheli karo awoodaha hooyo ee goob kasta oo la beegsanayo. Koodhka soo koobaya qaybiyey iyadoo hoos timaada shatiga GPLv2, iyo maktabad caadi ah iyo mashiinka farsamada ee loo sameeyay Haxe Neko hoos shatiga MIT.

Luuqadu waa hadal-ujeedo oo leh qori xoog leh. Fikradaha ku wajahan shay-ku-salaysan, guud iyo fikradaha barnaamijka shaqaynta waa la taageeray.
Haxe syntax waxay ku dhowdahay ECMAScript iyo balaadhiyo Astaamaha ay ka midka yihiin teebaynta joogtada ah, soo-jeedinta autotype, isbarbardhigga qaabka, generics, iterator ku salaysan loops, AST macros, GADT (Noocyada Xogta Aljebraiga ee Guud), noocyada aan la taaban karin, qaab-dhismeedka qarsoodiga ah, qeexitaan habaysan oo la fududeeyey, tibaaxaha isku dubaridka shuruudaysan, ku xidhida xogta badan ee goobaha , fasalada iyo tibaaxaha, xargaha isdhexgalka ('Magacaygu waa $name'), nooca cabbirada ("cusub Mainβ€Ήstringβ€Ί('foo')"), iyo ka badan.

Imtixaanka fasalka {
shaqada ugu muhiimsan ()
dadka var = [
"Elizabeth" => "Barnaamijka",
"Joel" => "Nashqadaynta"
];

loogu talagalay (magaca dadka. furayaasha()) {
var shaqo = dad[magac];
raad('$magac $shaqo ayuu u qabtaa nolol!');
}
}
}

Main wax cusub nooca 4.0:

  • syntax cusub oo lagu qeexayo nooca shaqada "(magaca: Xarig, da'da:Int)->Bool" ama "(String, Int)->Bool" halkii "String->Int->Bool".
  • Habka falaadha falaadhu waa "(a, b) -> a + b" halkii "shaqo(a, b) celin a + b".
  • Ka-hortagga dhibaatooyinka la xiriira isticmaalka qiyamka Null (sifada tijaabada ah, oo si ikhtiyaari ah loo oggolaaday meelaha qaarkood, fasallada ama xirmooyinka).
  • Erayga muhiimka ah ee "ugu dambeeya" waxa loogu talagalay qaybaha fasalka iyo doorsoomayaasha maxalliga ah ee aan la beddeli karin. "Final" waxa kale oo loo isticmaali karaa in lagu qeexo hawlaha looga hortagayo in lagu xad gudbo dhaxalka iyo fasallada/is dhexgalyada aan la dhaxli karin.
  • taageero Halbeegga Unicode ee nooca saldhigga "String" ee dhammaan bartilmaameedyada la soo ururiyey marka laga reebo Neko.
  • Turjubaanka gudaha laga soo qoray oo xoq ah, kaas oo hadda hoos imanaya magaca Ikhtiyaar. Waad ku mahadsan tahay turjubaanka cusub, qoraalada iyo makrosku waxay u ordaan si dhakhso leh. Qaabka wax-ka-hortagga is-dhexgalka waa la taageeray.
  • Nidaam cusub oo la beegsanayo oo la isku duba riday Hashlink - Runtime-waxqabad sare oo si gaar ah loogu talagalay Haxe, taageeridda isku-darka bytecode ee JIT ama C, waxay leedahay la-qabsiga sahlan ee C, iyo sidoo kale helitaanka noocyada tirada hoose iyo tilmaamayaasha.
  • Bartilmaameedka cusub ee JVM- wuxuu kuu ogolaanayaa inaad abuurto jvm bytecode adoo ka boodaya tillaabada koodhka Java adoo ku daraya calanka "-D jvm" marka la beegsanayo Java.
  • Awood u lahaanshaha khadka-dhigista goobta wicitaanka shaqooyinka ama dhisayaasha, xitaa haddii aan lagu dhawaaqin sidaas oo kale.
  • Suurtagalnimada ka mid noqoshada kordhinta taagan marka lagu dhawaaqayo nooc (sida "enum") isticmaalaya "@: isticmaalka(dariiqa.ToExtension)".
  • Noocyada aan la taaban karin hadda waxay taageerayaan nooca "set" ee "@:op(ab)" hawlwadeenka si uu dib ugu soo rogo tibaaxaha "obj.foo = bar".
  • Ereyga "for" loop syntax hadda wuxuu taageeraa soo celcelinta qiimaha-furaha: "loogu talagalay (key => qiimaha ururinta) {}".
  • Taageerada isticmaalka calaamadaynta xml ee tibaaxaha: "var a = β€Ήhi/β€Ί; Hadda, sifadani waxay diyaar u tahay oo kaliya in lagu falanqeeyo macros waxayna ku jirtaa marxaladda naqshadaynta.
  • Isku dhafka goobaha ikhtiyaariga ah ee qoraalka "buuxa" ee noocyada qaabdhismeedka qarsoodiga ah waa: "{ var ?f: Int; }" (ka bedelka gaaban "{?f:Int}").
  • Qiimayaasha Enum hadda waxay noqon karaan qiyamka caadiga ah ee doodaha shaqada: "Foojinta foo"T"(ikhtiyaarka: Optionβ€ΉTβ€Ί = Midna)".
  • "Enum abstract Name(BasicType) {}" syntax mar dambe uma baahna "@:" horgalaha "enum".
  • Si otomaatig ah u-tirinta tirooyinka aan la taaban karin:

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

  • Ereyga "dibadeed" uma baahna isticmaalka horgalaha "@:"
  • Waxa meesha ka saaray doorashada"qalab Dynamic" si aad u gasho garoomada fasalka iyada oo loo marayo xargaha. Loo heli karo fasallada dibadda ama iyada oo loo marayo hirgelinta nooc aan la taaban karin.
  • Lagu daray "A & B" syntax nooca isgoysyada, kaas oo hadda khuseeya oo kaliya dhismayaasha aan la garanayn iyo nooca xaddidaadaha. Nidaamkii hore ee xannibaadda waa la saaray.
  • Abuuritaanka tusaalooyin "Khariidado" madhan ayaa lagu heli karaa syntax "var map: Mapβ€ΉInt, Stringβ€Ί = [];" la mid ah array.
  • Qaab dhismeedka xogta lagu daray "haxe.ds.ReadOnlyArray".
  • Metadata hadda waxay yeelan kartaa meelo magacyo ah ("@:prefix.name function() {…}"). Si la mid ah qeexitaannada: "#haddii (qaar. Calan ... #dhammaad".
  • Nidaamka adeegga cusub ee IDE-yada loo isticmaalo plugin loogu talagalay VSCode.
  • Qeexitaannada dibadda ee la cusboonaysiiyay (dibadda) ee API-yada Shabkada oo lagu daray kuwa maqan.

Source: opennet.ru

Add a comment