Sakin harshen shirye-shirye Haxe 4.0

Akwai sakin kayan aiki Haxe 4.0, wanda ya haɗa da Multi-paradigm high-level programming languages ​​na suna iri ɗaya tare da bugu mai ƙarfi, mai haɗawa da madaidaicin ɗakin karatu na ayyuka. Aikin yana goyan bayan fassarar zuwa C++, HashLink/C, JavaScript, C#, Java, PHP, Python da Lua, da kuma haɗawa zuwa JVM, HashLink/JIT, Flash da Neko bytecode, tare da samun damar yin amfani da damar ɗan ƙasa na kowane dandamali na manufa. Lambar tarawa rarraba ta ƙarƙashin lasisin GPLv2, da madaidaicin ɗakin karatu da na'ura mai mahimmanci da aka haɓaka don Haxe Neko karkashin lasisin MIT.

Harshe shine magana-daidaitacce tare da bugu mai ƙarfi. Abubuwan da suka dace da abu, gamayya da dabarun shirye-shiryen aiki ana tallafawa.
Haxe syntax yana kusa da ECMAScript kuma yana faɗaɗa fasalullukan sa kamar buga rubutu a tsaye, ƙididdigewa ta atomatik, daidaita ƙirar ƙira, ƙirar ƙira, tushen tushen madaukai, AST macros, GADT (Nau'in Bayanan Algebraic Gabaɗaya), nau'ikan nau'ikan ƙira, tsarin da ba a san su ba, ƙayyadaddun ma'anar tsararru, maganganun haɗar yanayi, haɗa metadata zuwa filayen. , azuzuwan da kalamai, kirtani interpolation ('Sunana $name'), rubuta sigogi ("sabon Main‹String›('foo')"), da kuma fiye da haka.

Gwajin aji {
babban aiki a tsaye() {
mutane = [
"Elizabeth" => "Shirye-shiryen",
"Joel" => "tsara"
];

don (suna a cikin mutane.keys()) {
var aiki = mutane [suna];
gano('$ sunan yana yin $ aiki don rayuwa!');
}
}
}

Main sababbin abubuwa sigar 4.0:

  • Sabuwar tsarin aiki don tantance nau'in aiki "(suna: Kibiya, shekaru: Int) ->Bool" ko "(String, Int)->Bool" maimakon "String->Int->Bool".
  • Haɗin aikin kibiya shine "(a, b) -> a + b" maimakon "aiki(a, b) mayar a + b".
  • Kariya daga matsalolin da ke da alaƙa da amfani da ƙimar mara amfani (fasali na gwaji, zaɓin zaɓi don wasu filayen, azuzuwan ko fakiti).
  • Mabuɗin "ƙarshe" shine don filayen aji da masu canji na gida waɗanda ba su iya canzawa. Hakanan za'a iya amfani da "na ƙarshe" don ayyana ayyuka don hana su daga lalacewa ta hanyar gado da kuma azuzuwan / mu'amalar da ba za a iya gado ba.
  • goyon bayan Matsayin Unicode don nau'in tushe na "Kirtani" akan duk makasudin tattarawa ban da Neko.
  • Gina mai fassarar da aka sake rubutawa daga karce, wanda yanzu ya zo ƙarƙashin sunan Auna. Godiya ga sabon mai fassara, rubutun da macro suna gudu da sauri. Ana goyan bayan yanayin gyara matsala mai mu'amala.
  • Sabon tsarin manufa don tattarawa (manufa) Hashlink - babban lokacin aiki mai girma wanda aka tsara musamman don Haxe, yana goyan bayan haɗawa zuwa bytecode don JIT ko C, yana da sauƙin haɗawa tare da C, da samun dama ga nau'ikan lambobi masu ƙarancin ƙima da masu nuni.
  • Sabuwar JVM manufa - tana ba ku damar samar da jvm bytecode ta hanyar tsallake matakin haɗa lambar Java ta ƙara tuta "-D jvm" lokacin da aka yi niyya a Java.
  • Ikon ƙaddamar da layi-layi a wurin kiran ayyuka ko masu gini, ko da ba a bayyana su a matsayin haka ba.
  • Yiwuwar haɗawa a tsaye kari lokacin bayyana nau'i (kamar "enum") ta amfani da "@: amfani da (hanyar.ToExtension)".
  • Nau'in Abstract yanzu suna goyan bayan sigar "saiti" na "@:op(ab)" afareta don sake loda kalmomin "obj.foo = mashaya".
  • Madaidaicin madauki na "don" yanzu yana goyan bayan ƙima-ƙimar maɓalli: "don (maɓalli => ƙimar cikin tarin) {}".
  • Taimako don amfani da alamar xml-kamar a cikin maganganu: “var a = ‹hi/›;”. A yanzu, wannan fasalin yana samuwa ne kawai don tantancewa tare da macros kuma yana kan matakin ƙira.
  • Ma'anar filaye na zaɓi a cikin "cikakken" bayanin nau'in tsarin da ba a san su ba shine: "{var ?f:Int; }" (wani madadin gajeriyar "{ ?f:Int }").
  • Ƙimar Enum yanzu na iya zama ƙimar tsoho don muhawarar aiki: "aiki foo‹T›(zaɓi: Zabin ‹T› = Babu)".
  • "Enum Abstract Name(BasicType) {}" syntax baya buƙatar prefix "@:" a cikin "enum".
  • Ƙididdigar atomatik don ƙididdige ƙididdiga:

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

  • Mabuɗin "extern" baya buƙatar amfani da "@:" prefix.
  • An cire zabin"aiwatarwa Dynamic" don isa ga filayen aji ta hanyar kirtani. Akwai don azuzuwan waje ko ta hanyar aiwatarwa ta nau'in zayyana.
  • An ƙara "A & B" syntax don nau'in mahaɗa, wanda a halin yanzu yana aiki ne kawai ga tsarin da ba a san su ba da kuma nau'in ma'auni. An cire tsohuwar takurawa.
  • Ƙirƙirar misalan "Taswirar" mara komai yana samuwa ta hanyar haɗin gwiwar "var taswira: Taswira"Int, String› = [];" kama da tsararru.
  • Ƙara tsarin bayanai "haxe.ds.ReadOnlyArray".
  • Metadata yanzu na iya samun wuraren suna ("@: prefix.name function() {…}"). Hakazalika tare da ma'anar: "#if (wasu.flag ... #end".
  • Sabuwar ka'idar sabis don IDEs da aka yi amfani da su a ciki plugin don VSCode.
  • Sabunta ma'anoni na waje (na waje) don APIs na Yanar Gizo da ƙara waɗanda suka ɓace.

source: budenet.ru

Add a comment