Famoahana ny fiteny fandaharana Haxe 4.0

Available famoahana fitaovana Haxe 4.0, 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 tranomboky mahazatra sy milina virtoaly novolavolaina ho an'ny Haxe neko eo ambanin'ny lisansa MIT.

Ny fiteny dia mitodika amin'ny fanehoan-kevitra amin'ny fanoratana mafy. Tohanana ny foto-kevitra momba ny fandaharana miompana amin'ny zavatra, 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, iterator-based for loops, AST macros, GADT (Generalized Algebraic Data Types), karazana abstract, rafitra tsy mitonona anarana, famaritana laharan-tsotsotra, fehezanteny fanangonana fepetra , fametahana metadata amin'ny saha , kilasy sy fitenenana, interpolation string ('ny anarako dia $name'), karazana masontsivana ("Vaovao Main‹String›('foo')"), ary betsaka kokoa.

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

ho an'ny (anarana ao amin'ny olona.keys()) {
var asa = olona[name];
trace('$name manao $asa ho fivelomana!');
}
}
}

tena fanavaozana version 4.0:

  • Syntax vaovao hamaritana karazana fiasa "(anarana:String, taona:Int) -> Bool" na "(String, Int) -> Bool" fa tsy "String->Int->Bool".
  • Ny syntax fampiasa zana-tsipìka dia "(a, b) -> a + b" fa tsy "function(a, b) miverina a + b".
  • Fiarovana amin'ny olana mifandraika amin'ny fampiasana ny soatoavina Null (endrika andrana, azo atao amin'ny sehatra, kilasy na fonosana sasany).
  • Ny teny fanalahidy "farany" dia natao ho an'ny sahan'ny kilasy sy ny fari-piainana eo an-toerana izay tsy azo ovaina. Ny "farany" dia azo ampiasaina koa hamaritana ny fiasa mba hisorohana azy ireo tsy ho voafehin'ny lova sy ho an'ny kilasy/interface tsy azo lovaina.
  • fanohanana Ny fenitra Unicode ho an'ny karazana fototra "String" amin'ny tanjona fanangonana rehetra afa-tsy Neko.
  • Mpandika teny naorina naverina nosoratana hatrany am-boalohany, izay tonga amin'ny anarana ankehitriny Tombano. Noho ny mpandika teny vaovao dia mihazakazaka haingana kokoa ny scripts sy macros. Tohanana ny maody debugging interactive.
  • Rafitra kendrena vaovao ho an'ny fanangonana (kendrena) Hashlink - fotoana fampandehanana avo lenta natao manokana ho an'ny Haxe, manohana ny fanangonana amin'ny bytecode ho an'ny JIT na C, manana fampidirana mora amin'ny C, ary koa ny fidirana amin'ireo karazana nomerika ambany sy tondro.
  • Tanjona JVM vaovao - ahafahanao mamorona jvm bytecode amin'ny alàlan'ny fandinganana ny dingana fanangonana code Java amin'ny fampidirana ny saina "-D jvm" rehefa mikendry Java.
  • Ny fahafahana mametraka inline eo amin'ny toerana fiantsoana asa na mpanamboatra, na dia tsy ambara ho toy izany aza.
  • Ny mety hampidirana fanitarana static rehefa manambara karazana (toy ny "enum") amin'ny fampiasana "@: fampiasana (lalana.ToExtension)".
  • Ny karazana abstract izao dia manohana dikan-teny "set" an'ny operator "@:op(ab)" hamerenana indray ny fomba fiteny "obj.foo = bar".
  • Ny syntax loop "for" izao dia manohana ny famerenam-bidy manan-danja: "for (key => value in collection) {}".
  • Fanohanana ny fampiasana marika toy ny xml amin'ny fomba fiteny: "var a = ‹hi/›;". Amin'izao fotoana izao, ity endri-javatra ity dia tsy misy afa-tsy amin'ny famakafakana amin'ny macros ary eo amin'ny sehatry ny famolavolana.
  • Ny syntax ho an'ny saha azo atao amin'ny fanamarihana “feno” amin'ny karazana rafitra tsy mitonona anarana dia: “{ var ?f:Int; }" (solon'ny fohy "{ ?f:Int }").
  • Ny soatoavina enum dia mety ho soatoavina default ho an'ny tohan-kevitra momba ny asa: "function foo‹T›(safidy:Option‹T› = Tsy misy)".
  • Ny fehezanteny "Enum abstract Name(BasicType) {}" dia tsy mila ny tovana "@:" ao amin'ny "enum" intsony.
  • Auto-numbering ho an'ny fanisana abstract:

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

  • Ny teny fanalahidy "extern" dia tsy mitaky ny fampiasana ny tovana "@:" intsony.
  • Nesorina ny safidy "fitaovana Dynamic" hidirana amin'ny sahan'ny kilasy amin'ny alalan'ny tady. Azo alaina ho an'ny kilasy ivelany na amin'ny fampiharana amin'ny karazana abstract.
  • Nampiana syntax "A & B" ho an'ny karazana intersection, izay tsy mihatra afa-tsy amin'ny rafitra tsy mitonona anarana sy ny teritery masontsivana karazana. Nesorina ny teny faneriterena taloha.
  • Ny famoronana ohatra "Map" foana dia azo alaina amin'ny alàlan'ny syntax "var map:Map‹Int, String› = [];" mitovy amin'ny array.
  • Nampiana rafitra angona "haxe.ds.ReadOnlyArray".
  • Ny metadata izao dia afaka manana sehatra anarana (“@:prefix.name function() {…}”). Toy izany koa amin'ny famaritana: "#raha (samy.flag ... #farany".
  • Protokol serivisy vaovao ho an'ny IDE ampiasaina ao plugin ho an'ny VSCode.
  • Famaritana ivelany nohavaozina (extern) ho an'ny API Web ary nampiana tsy hita.

Source: opennet.ru

Add a comment