Tuuina atu o le gagana polokalame Haxe 4.0

Avanoa fa'amalologa meafaigaluega Haxe 4.0, lea e aofia ai le tele-paradigm high-level programming language of the same name with strong typing, a cross-compiler ma se faletusi masani o galuega. E lagolagoina e le poloketi le fa'aliliuga i le C++, HashLink/C, JavaScript, C#, Java, PHP, Python ma Lua, fa'apea fo'i le tu'ufa'atasiga i le JVM, HashLink/JIT, Flash ma le Neko bytecode, fa'atasi ai ma le avanoa i agava'a fa'ale-aganu'u o ta'iala ta'itasi. Fa'ailoga tu'ufa'atasi tufatufaina e i lalo ole laisene GPLv2, ma se faletusi masani ma se masini komepiuta na fausia mo Haxe neko i lalo ole laisene MIT.

O le gagana fa'aali fa'aaliga ma le lolomi malosi. E lagolagoina mataupu fa'atatau, lautele ma fa'atino polokalame.
Haxe syntax e latalata ile ECMAScript ma fa'alautele o ona foliga e pei o le lolomi fa'amau, autotype inference, fa'atusaina mamanu, generics, fa'avae fa'ata'ita'i mo matasele, AST macros, GADT (Generalized Algebraic Data Types), ituaiga fa'apitoa, fausaga e le ta'ua, fa'auigaina fa'afaigofieina, fa'amatalaga tu'ufa'atasiga, fa'apipi'i metadata i fanua. , vasega ma fa'aaliga, va'aiga manoa ('O lo'u igoa o le $igo'u'), fa'aigoa ta'iala ("Fa'autu fou>('foo')"), ma sili atu.

vasega Su'ega {
static function main() {
var tagata = [
"Elizabeth" => "Polokalame",
"Joel" => "Mamanu"
];

mo (igoa i tagata.ki()) {
var galuega = tagata[igoa];
trace('$igoa e $galuega mo se ola!');
}
}
}

tele mea fou lomiga 4.0:

  • Fa'asologa fou mo le fa'amaonia o le ituaiga galuega "(igoa: String, tausaga: Int) -> Bool" poʻo le "(String, Int) -> Bool" nai lo le "String->Int->Bool".
  • Arrow function syntax o le "(a, b) -> a + b" nai lo le "galuega (a, b) toe faafoi a + b".
  • Puipuiga mai faʻafitauli e fesoʻotaʻi ma le faʻaogaina o tau Null (faʻataʻitaʻiga faʻataʻitaʻiga, faʻatagaina mo nisi vaega, vasega poʻo afifi).
  • O le upu "fa'ai'u" e mo vasega vasega ma suiga fa'apitonu'u e le mafai ona suia. "Fa'ai'u" e mafai fo'i ona fa'aoga e fa'amatala ai galuega e puipuia ai i latou mai le fa'atosinaina e le tofi ma mo vasega / fa'aoga e le mafai ona tu'ufa'atasia.
  • lagolago Unicode standard mo le ituaiga faavae "String" i luga o sini tuʻufaʻatasiga uma sei vagana ai Neko.
  • Fa'aliliu upu ua toe tusia mai le amataga, lea ua sau i lalo o le igoa Valu. Fa'afetai i le fa'aliliuupu fou, fa'amatalaga ma macros e sili atu le saoasaoa. O lo'o lagolagoina le fa'aogaina o le fa'aogaina o le faiga.
  • Faiga fou mo le tu'ufa'atasia Hashlink - o se ta'aloga maualuga fa'atino ua fa'atulagaina fa'apitoa mo Haxe, e lagolagoina le tu'ufa'atasiga i le bytecode mo le JIT po'o le C, e faigofie ona tu'ufa'atasia ma le C, fa'apea fo'i ma le avanoa i ituaiga numera ma fa'ailoga maualalo.
  • Fuafuaga fou a le JVM - fa'atagaina oe e fa'atupu le jvm bytecode e ala i le fa'ase'eina o le Java code compilation step e ala i le fa'aopoopoina o le fu'a "-D jvm" pe a fa'atatau i Java.
  • Le mafai ona inline-faʻapipiʻi i le tulaga o le valaʻau galuega poʻo tagata faufale, tusa lava pe le o faʻaalia.
  • Avanoa e aofia ai fa'aopoopoga fa'amau pe a faʻaalia se ituaiga (pei o le "enum") faʻaaoga "@: faʻaaogaina (path.ToExtension)".
  • O lo'o lagolagoina nei e ituaiga fa'apitoa le "set" o le "@:op(a.b)" fa'agaioiga e toe fa'afou ai fa'amatalaga "obj.foo = bar".
  • O le "for" loop syntax ua lagolagoina nei le key-value iteration: "for (key => value in collection) {}".
  • Lagolago mo le faʻaogaina o le xml-pei o le faʻailoga i faʻamatalaga: "var a = ‹hi/›;". Mo le taimi nei, o lenei vaega e na'o avanoa mo le faʻavasegaina ma macros ma o loʻo i ai i le tulaga o le mamanu.
  • O le syntax mo avanoa e filifili ai i le fa'ailoga "atoa" o ituaiga fausaga e le ta'ua o le: “{ var ?f:Int; }" (o se isi mea i le pu'upu'u "{ ?f:Int }").
  • Ole tau ole Enum e mafai nei ona avea ma tau fa'aletonu mo finauga fa'atino: "function foo‹T›(filifiliga:Option‹T› = Leai)".
  • O le "enum abstract Name(BasicType) {}" e le toe mana'omia le "@:" prefix i le "enum".
  • Fa'anumera otometi mo fa'asologa o fa'amaumauga:

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

  • Ole upu "fafo" e le toe mana'omia le fa'aogaina o le "@:" prefix.
  • Aveese le filifiliga "faʻataunuʻu Dynamic" e fa'aoga ai fanua o vasega e ala i manoa. Avanoa mo vasega i fafo po'o le fa'atinoina e se ituaiga fa'apitoa.
  • Fa'aopoopoina le "A & B" syntax mo le ituaiga va'aiga, lea o lo'o fa'aoga i le taimi nei i fausaga e le ta'ua ma ituaiga fa'agata. Ua aveese le fa'atonuga tuai.
  • O le fatuina o avanoa "Map" e avanoa e ala i le syntax "var map:Map‹Int, String› = [];" e tutusa ma se laina.
  • Fa'aopoopo fa'amaumauga fa'amaumauga "haxe.ds.ReadOnlyArray".
  • Metadata ua mafai nei ona iai igoa avanoa (“@:prefix.name function() {…}”). E faapena foi ma faauigaga: “#afai (some.flag ... #end”.
  • Polokalama auaunaga fou mo IDE o loʻo faʻaaogaina i plugin mo VSCode.
  • Fa'afou fa'auigaga i fafo (fafo) mo Web API ma fa'aopoopo mea e misi.

puna: opennet.ru

Faaopoopo i ai se faamatalaga