Disponibbli rilaxx ta' toolkit Haxe 4.1, li tinkludi l-lingwa ta 'programmar ta' livell għoli multi-paradigma ta 'l-istess isem b'ittajpjar qawwi, cross-compiler u librerija standard ta' funzjonijiet. Il-proġett jappoġġja t-traduzzjoni għal C++, HashLink/C, JavaScript, C#, Java, PHP, Python u Lua, kif ukoll il-kumpilazzjoni għal JVM, HashLink/JIT, Flash u Neko bytecode, b'aċċess għall-kapaċitajiet indiġeni ta 'kull pjattaforma fil-mira. Kodiċi tal-kompilatur imqassma minn taħt il-liċenzja GPLv2, u l-librerija standard u l-magni virtwali żviluppati għal Haxe HashLink и neko taħt il-liċenzja MIT.
Il-lingwa hija orjentat lejn l-espressjoni b'ittajpjar qawwi. Tekniki ta' programmazzjoni orjentati lejn l-oġġetti, ġeneriċi u funzjonali huma appoġġjati. Is-sintassi Haxe hija qrib ECMAScript u tespandi il-karatteristiċi tiegħu bħal tajpjar statiku, inferenza awtotip, tqabbil tal-mudelli, ġeneriċi, għal loops ibbażati fuq iteratur, makro AST, GADT (Tipi ta' Dejta Alġebrin Ġeneralizzat), tipi astratti, strutturi anonimi, definizzjonijiet ta' array simplifikati, espressjonijiet ta' kumpilazzjoni kondizzjonali, twaħħil ta' metadata ma' oqsma , klassijiet u espressjonijiet, interpolazzjoni ta' string ("'Ismi $name'"), parametri tat-tip ("New Main("foo")'), u hafna aktar.
test tal-klassi {
funzjoni statika main() {
nies finali = [
"Elizabeth" => "Ipprogrammar",
"Joel" => "Disinn"
];
għal (isem => xogħol fin-nies) {
trace('$isem jagħmel $job għal għajxien!');
}
}
}
Karatteristiċi ġodda fil-verżjoni 4.1:
Miżjud ottimizzazzjoni tar-rikorsi tad-denb.
Żieda API unifikata ġdida għall-immaniġġjar tal-eċċezzjonijiet.
Il-kostruzzjoni "pprova {} catch(e) {}" hija permessa bħala shorthand għal "pprova {} catch(e: haxe.Exception) {}".
Miżjud appoġġ SSL għall-interpretu eval.
Il-JVM fil-mira m'għadhiex meqjusa bħala sperimentali.
Għal Language Server Protocol, ġie miżjud appoġġ għall-funzjonijiet "Implimentazzjoni Goto" u "Sib referenzi".
Ismijiet imtejba tal-varjabbli lokali temporanji fil-kodiċi ġġenerat. Tneħħiet "ritorn;" żejda; fil-funzjonijiet vleġġa mingħajr valur ta 'ritorn.
Kombinazzjonijiet ta' aċċess (get, default) huma permessi fuq il-fields (getter biss, imġieba ta' assenjazzjoni default).
Ħalli operaturi inkrement u tnaqqis għall-oqsma tipi astratti.
Inlining imtejjeb ta' for loops bl-użu ta' iteraturi anonimi.
js: Implimentazzjoni StringMap imtejba għal ES5.
js: Ġenerazzjoni ta 'varjabbli let ġiet miżjuda mal-għażla tal-kompilatur "-D js-es=6", il-ġenerazzjoni tal-klassijiet ES6 ġiet imtejba.
php: Arrays iġġenerati issa jimplimentaw l-interfaces nattivi "Iterator", "IteratorAggregate", "Countable".
cs: Metadata miżjuda "@:assemblyMeta" u "@:assemblyStrict".
python: implimentazzjoni miżjuda ta' "__contains__" għal oġġetti anonimi
u "__getitem__", li jippermettilhom li jintużaw bħala dizzjunarji fil-kodiċi ġġenerat.
jvm: Prestazzjoni mtejba b'mod sinifikanti bis-saħħa ta' mod ġdid ta' aċċess għall-funzjonijiet ittajpjati u ta' ġenerazzjoni ta' interfaces addizzjonali f'każijiet fejn l-oġġetti jintużaw bħala strutturi anonimi (il-tfittxija ta' proprjetà dinamika hija evitata):