Hoʻokuʻu ʻia ka ʻōlelo papahana Haxe 4.0

Loaʻa hoʻokuʻu mea hana Haxe 4.0, i loko o ka multi-paradigm high-level programming language of the same name with strong typing, cross-compiler and a standard library of functions. Kākoʻo ka papahana i ka unuhi ʻana iā C++, HashLink/C, JavaScript, C#, Java, PHP, Python a me Lua, a me ka hoʻohui pū ʻana iā JVM, HashLink/JIT, Flash a me Neko bytecode, me ka loaʻa ʻana o nā mana maoli o kēlā me kēia kahua paʻa. Code mea hōʻuluʻulu mahele ʻia e ma lalo o ka laikini GPLv2, a me kahi waihona maʻamau a me kahi mīkini virtual i kūkulu ʻia no Haxe neko ma lalo o ka laikini MIT.

ʻO ka ʻōlelo manaʻo ʻōlelo me ka paʻi ʻana ikaika. Kākoʻo ʻia nā manaʻo hoʻolālā hoʻolālā, maʻamau a me ka hana.
Kokoke ʻo Haxe syntax i ECMAScript a hoʻonui ʻO kona mau hiʻohiʻona e like me ka paʻi paʻa, autotype inference, pattern matching, generics, iterator-based for loops, AST macros, GADT (Generalized Algebraic Data Types), abstract types, anonymous structures, simplied array definitions, conditional compilation expressions , hoʻopili metadata i nā kahua. , nā papa a me nā ʻōlelo, ka hoʻopili string ('ʻO koʻu inoa ʻo $name'), ʻano ʻano ʻāpana ("Main‹String›('foo')"), a nui hou aku.

papa hoao {
hana paʻa () {
var kanaka = [
"Elizabeth" => "Hoʻolālā",
"Joel" => "Hoʻolālā"
];

no (inoa ma kanaka.keys()) {
var job = kanaka[inoa];
trace('$inoa ke hana i $hana no ke ola!');
}
}
}

ka papa kuhikuhiE nā mea hou mana 4.0:

  • ʻO ka syntax hou no ka wehewehe ʻana i ke ʻano hana "(inoa:String, makahiki:Int) -> Bool" a i ʻole "(String, Int) -> Bool" ma kahi o "String->Int->Bool".
  • ʻO ka syntax hana pana ʻo "(a, b) -> a + b" ma kahi o "hana(a, b) hoʻihoʻi i a + b".
  • ʻO ka pale ʻana i nā pilikia e pili ana i ka hoʻohana ʻana i nā waiwai Null (hiʻohiʻona hoʻokolohua, hiki ke koho ʻia no kekahi mau māla, papa a i ʻole pūʻulu).
  • ʻO ka huaʻōlelo "hope" no nā kahua papa a me nā ʻano loli kūloko i hiki ʻole ke hoʻololi. Hiki ke hoʻohana ʻia ka "hope" no ka wehewehe ʻana i nā hana e pale ai iā lākou mai ka hoʻoili ʻia ʻana a no nā papa/interface hiki ʻole ke hoʻoili ʻia.
  • kākoʻo Unicode maʻamau no ke ʻano kumu "String" ma nā pahu hoʻohui a pau koe ʻo Neko.
  • ʻO ka unuhi ʻōlelo i kūkulu ʻia i kākau hou ʻia mai ka wā kahiko mai, aia i kēia manawa ma lalo o ka inoa E loiloi. Mahalo i ka unuhi ʻōlelo hou, holo wikiwiki nā palapala a me nā macros. Kākoʻo ʻia ke ʻano hana debugging interactive.
  • Pūnaehana pahuhopu hou no ka hōʻuluʻulu ʻana (pahu) Hashlink - he manawa holo hana kiʻekiʻe i hoʻolālā ʻia no Haxe, e kākoʻo ana i ka hōʻuluʻulu ʻana i bytecode no JIT a i ʻole C, hiki ke hoʻohui maʻalahi me C, a me ke komo ʻana i nā ʻano helu haʻahaʻa a me nā kuhikuhi.
  • Pahu JVM hou - hiki iā ʻoe ke hoʻohua i ka jvm bytecode ma ka hoʻokuʻu ʻana i ka ʻanuʻu hōʻuluʻulu code Java ma ka hoʻohui ʻana i ka hae "-D jvm" i ka wā e huli ana i Java.
  • ʻO ka hiki ke inline-deploy ma kahi o ke kāhea ʻana i nā hana a i ʻole nā ​​​​mea kūkulu hale, ʻoiai inā ʻaʻole lākou i haʻi ʻia e like me ia.
  • Hiki ke komo hoʻonui paʻa i ka haʻi ʻana i kahi ʻano (e like me "enum") me ka "@: hoʻohana (path.ToExtension)".
  • Ke kākoʻo nei nā ʻano abstract i kahi mana "set" o ka mea hoʻohana "@:op(a.b)" e hoʻouka hou i nā ʻōlelo "obj.foo = bar".
  • Kākoʻo ka "for" loop syntax i kēia manawa i ka hoʻololi waiwai kī: "for (key => value in collection) {}".
  • Kākoʻo no ka hoʻohana ʻana i ka markup-like xml i nā ʻōlelo: “var a = ‹hi/›;”. I kēia manawa, loaʻa kēia hiʻohiʻona no ka parsing me nā macros a aia i ka pae hoʻolālā.
  • ʻO ka syntax no nā kahua koho ma ka hōʻailona “piha” o nā ʻano hale ʻano inoa ʻole: “{ var ?f:Int; }" (kahi ʻokoʻa i ka pōkole "{ ?f:Int }").
  • Hiki i nā waiwai Enum ke lilo i mau waiwai paʻamau no nā hoʻopaʻapaʻa hana: "function foo‹T›(koho:Option‹T› = ʻAʻohe)".
  • ʻAʻole koi hou ka syntax "enum abstract Name(BasicType) {}" i ka prefix "@:" ma "enum".
  • Ka helu ʻakomi no nā helu ʻokoʻa:

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

  • ʻAʻole koi hou ka huaʻōlelo "waho" i ka hoʻohana ʻana i ka prefix "@:".
  • Wehe ʻia ke koho "nā hana Dynamic" e komo i nā kahua papa ma o nā kaula. Loaʻa no nā papa o waho a i ʻole ma o ka hoʻokō ʻana e kahi ʻano abstract.
  • Hoʻohui ʻia ka syntax "A & B" no ke ʻano intersection, i kēia manawa pili wale i nā hale inoa ʻole a me nā ʻano palena palena. Ua wehe ʻia ka syntax kaohi kahiko.
  • Loaʻa ka hana ʻana i nā manawa "Map" ʻole ma o ka syntax "var map: Map‹Int, String› = [];" like me ka laha.
  • Hoʻohui ʻia ka ʻikepili "haxe.ds.ReadOnlyArray".
  • Hiki ke loaʻa i nā metadata nā inoa inoa (“@:prefix.name function() {…}”). Pēlā pū me nā wehewehe: “#if (some.flag ... #end”.
  • ʻO ka protocol lawelawe hou no nā IDE i hoʻohana ʻia ma plugin no VSCode.
  • Hōʻano hou ʻia nā wehewehe waho (waho) no nā API Pūnaewele a hoʻohui i nā mea i nalowale.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka