Berdeste serbestberdana toolkit Haxe 4.0, ku zimanê bernamesaziya pir-paradîgmaya asta bilind a bi heman navî bi tîpkirina xurt, hevberhevkerek û pirtûkxaneyek standard a fonksiyonan vedihewîne. Proje wergera C++, HashLink/C, JavaScript, C#, Java, PHP, Python û Lua, û hem jî berhevkirina JVM, HashLink/JIT, Flash û Neko bytecode, bi gihîştina kapasîteyên xwemalî yên her platformek armancê piştgirî dike. Koda berhevkar belav kirin ji hêla di bin lîsansa GPLv2 de, û pirtûkxaneyek standard û makîneyek virtual ku ji bo Haxe hatî pêşve xistin neko di bin lîsansa MIT.
Ziman e îfade-oriented bi tîpên xurt. Têgehên bernamesaziya objekt-oriented, gelemperî û fonksiyonel têne piştgirî kirin.
Hevoksaziya Haxe nêzîkî ECMAScript û berfireh dike taybetmendiyên wê yên wekî tîpkirina statîk, înfaza ototîp, hevberdana nimûne, generîk, îterator-based loops, makroyên AST, GADT (Cîpên Daneyên Cebrîkî yên Giştî), celebên razber, strukturên nenas, pênaseyên rêzê yên hêsan, vegotinên berhevkirina şertî, girêdana metadata bi qadan , çîn û biwêjan, navberkirina rêzikan ('Navê min $name ye'), parametreyên binivîsin ("New Main‹String›('foo')"), û gelek zêdetir.
testa dersê {
fonksiyona statîk sereke() {
var mirov = [
"Elizabeth" => "Bernamekirin",
"Joel" => "Design"
];
ji bo (navê di people.keys()) {
var job = kes[nav];
trace('$name ji bo debara xwe $kar dike!');
}
}
}
Hevoksaziya nû ji bo diyarkirina celebê fonksiyonê "(nav: String, temen:Int)->Bool" an "(String, Int)->Bool" li şûna "String->Int->Bool".
Hevoksaziya fonksiyona tîrê "(a, b) -> a + b" li şûna "fonksiyona (a, b) vegerandina a + b" ye.
Parastina li dijî pirsgirêkên ku bi karanîna nirxên Null re têkildar in (taybetmendiya ceribandinê, vebijarkî ji bo hin qadan, çîn an pakêtan ve hatî çalak kirin).
Peyva sereke ya "dawî" ji bo zeviyên polê û guhêrbarên herêmî yên ku neguhêrbar in e. Her weha "dawî" dikare ji bo danasîna fonksiyonan were bikar anîn da ku pêşî li girtina wan ji mîrasbûnê bigire û ji bo çînên / navgînên ku nayên mîras kirin.
alîkarî Standarda Unicode ji bo celebê bingehîn "String" li ser hemî armancên berhevokê ji bilî Neko.
Wergêrê çêkirî ji nû ve hatî nivîsandin, ku naha di bin navê de tê Bihadanîn. Bi saya wergêra nû, nivîs û makro pir zûtir dimeşin. Moda verastkirina înteraktîf tê piştgirî kirin.
Pergala armanca nû ya ji bo berhevkirinê (armanc) Hashlink - dema xebitandinê ya bi performansa bilind ku bi taybetî ji bo Haxe hatî çêkirin, piştgirî dide berhevkirina bytecode ji bo JIT an C, bi C re entegrasyona hêsan heye, û her weha gihîştina celeb û nîşankerên hejmarî yên asta nizm.
Hedefa nû ya JVM - destûrê dide te ku hûn jvm bytecode hilberînin, gava ku di Java-yê de armanc dikin, bi avêtina gavê berhevkirina koda Java-yê bi lê zêdekirina ala "-D jvm" biafirînin.
Qabiliyeta ku di nuqteya bangkirina fonksiyonan an çêkeran de binavkirî-dabeşkirin, hetta ku ew weha neyên ragihandin.
Îhtîmala tevlêbûnê dirêjkirinên statîk dema ragihandina celebek (wek "enum") bi karanîna "@:using(path.ToExtension)".
Cûreyên razber naha guhertoyek "set" ya operatora "@:op(a.b)" piştgirî dikin da ku bêjeyên "obj.foo = bar" ji nû ve bar bike.
Hevoksaziya lûkê "ji bo" niha dubarekirina nirx-kilît piştgirî dike: "ji bo (key => nirxa di berhevkirinê de) {}".
Piştgiriya ji bo karanîna nîşankirina xml-mîna di bêjeyan de: "var a = ‹hi/›;". Heya nuha, ev taybetmendî tenê ji bo parkirina bi makroyan heye û di qonaxa sêwiranê de ye.
Hevoksaziya qadên bijarte yên di nîşana "temam" a cureyên avahiyeke nenas de ev e: "{ var ?f:Int; }" (alternatîfek ji bo kurteya "{ ?f:Int }").
Nirxên Enumê naha dikarin ji bo argumanên fonksiyonê bibin nirxên xwerû: "function foo‹T›(vebijark: Vebijêrk‹T› = Tune)".
Hevoksaziya "enum abstract Name(BasicType) {}" êdî di "enum" de pêşgira "@:" hewce nake.
Jimarkirina otomatîk ji bo hejmartinên razber:
enum abstract Foo(Int) {
var A; // 0
var B; // 1
}
enum abstract Bar(String) {
var A; // "A"
var B; // "B"
}
Peyva sereke ya "derve" êdî hewce nake ku pêşgira "@:" bikar bîne.
Vebijêrk rakirin "pêkanîn dike Dînamîk" ku bi riya rêzan bigihîje zeviyên polê. Ji bo dersên derveyî an bi pêkanîna bi celebek abstrakt peyda dibe.
Hevoksaziya "A & B" ji bo hevberdana tîpan hat zêdekirin, ku naha tenê ji bo strukturên nenas û sînorkirinên parametreyê yên cureyê derbas dibe. Hevoksaziya astengiya kevin hat rakirin.
Çêkirina mînakên "Nexşeyê" yên vala bi rêya hevoksaziya "var map:Map‹Int, String› = [];" dişibin array.
Struktura daneyê "haxe.ds.ReadOnlyArray" lê zêde kir.
Metadata naha dikare cîhên navan hebe ("@:prefix.name function() {…}"). Bi heman awayî bi pênaseyan: "#eger (hinek.ala ... #dawî".
Protokola karûbarê nû ya ji bo IDE-yên ku tê de têne bikar anîn pêvek ji bo VSCode.
Ji bo API-yên Web-ê pênaseyên derveyî (derve) nûve kirin û yên winda lê zêde kirin.