Te tukunga o te reo hootaka Haxe 4.0

Wātea tuku kete taputapu Haxe 4.0, kei roto ko te reo hotaka taumata-tiketike-maha o te ingoa kotahi me te kaha patopato, he whakahiato whakawhiti me te whare pukapuka paerewa o nga mahi. Ka tautokohia e te kaupapa te whakamaoritanga ki C++, HashLink/C, JavaScript, C#, Java, PHP, Python me Lua, me te whakahiato ki JVM, HashLink/JIT, Flash me Neko bytecode, me te uru atu ki nga kaha taketake o ia papaapapa whaainga. Waehere whakahiato tohaina e i raro i te raihana GPLv2, me te whare pukapuka paerewa me te miihini mariko i whakawhanakehia mo Haxe neko i raro i te raihana MIT.

Ko te reo whakapuaki-whakaaro me te tuhi kaha. E tautokohia ana nga kaupapa kaupapa-a-ahua, nga tikanga whanui me te mahi.
He tata te wetereo Haxe ki te ECMAScript me whakawhanui ona ahuatanga penei i te patopato pateko, te whakatauira autotype, te taurite tauira, te momo, te kaiwhakariterite mo nga koropiko, tonotono AST, GADT (Momo Raraunga Taurangi Whakanui), momo waitara, hanganga ingoamuna, whakamaarama hurangi ngawari, kupu whakahiato herenga , taapiri metadata ki nga mara , nga karaehe me nga korero, te honohono aho ('Ko $ingoa toku ingoa'), momo tawhā ("Hou Matua›('foo')"), me nui noa atu.

Whakamātautau akomanga {
mahi pateko matua() {
var tangata = [
"Elizabeth" => "Patakataka",
"Joel" => "Hoahoa"
];

mo (ingoa i roto i nga tangata.keys()) {
var mahi = tangata[ingoa];
trace('$ingoa he $mahi hei oranga!');
}
}
}

Main nga mahi auaha Putanga 4.0:

  • He wetereo hōu mō te whakapūtā momo mahi "(ingoa:String, age:Int)->Bool" or "(String, Int)->Bool" hei utu mo "String->Int->Bool".
  • Ko te wetereo mahi pere ko "(a, b) -> a + b" hei utu mo te "taumahi(a, b) whakahoki a + b".
  • Te whakamarumaru ki nga raru e pa ana ki te whakamahi i nga uara Null (whakamatautau, ka taea mo etahi mara, karaehe, kete ranei).
  • Ko te kupu matua "whakamutunga" mo nga mara karaehe me nga taurangi rohe e kore e taea te huri. Ka taea hoki te whakamahi "whakamutunga" ki te tautuhi i nga mahi hei aukati i a raatau e te tuku iho me nga karaehe/atanga kaore e taea te tuku iho.
  • support Paerewa Unicode mo te momo turanga "String" i runga i nga whaainga whakahiato katoa engari ko Neko.
  • Ko te kaiwhakamaori-a-roto i tuhia ano mai i te wahanga, kei raro i te ingoa inaianei Taeroa. He mihi ki te kaiwhakamaori hou, he tere ake te rere o nga tuhinga me nga tonotono. Ka tautokohia te aratau patuiro tauwhitiwhiti.
  • Pūnaha ūnga hōu mō te whakahiato (whāngai) Hashlink - he wa mahi nui i hangaia mo Haxe, e tautoko ana i te whakahiato ki te bytecode mo JIT, C ranei, he ngawari te whakauru ki te C, me te uru atu ki nga momo tau taumata iti me nga tohutohu.
  • Ko te whaainga JVM hou - ka taea e koe te whakaputa jvm bytecode ma te peke i te taahiraa whakahiato waehere Java ma te taapiri i te haki "-D jvm" i te wa e aro ana ki Java.
  • Ko te kaha ki te whakauru-a-roto i te waahi o te karanga i nga mahi, i nga kaihanga ranei, ahakoa kaore e kiia he pera.
  • Ka taea te whakauru toronga pateko i te wa e whakapuaki ana i tetahi momo (penei i te "enum") ma te whakamahi "@: te whakamahi(path.ToExtension)".
  • Ko nga momo waahanga e tautoko ana inaianei i te putanga "huinga" o te kaiwhakahaere "@:op(ab)" hei uta ano i nga korero "obj.foo = bar".
  • Ko te wetereo "mo" ka tautoko inaianei i te uara-matua: "mo (matua => uara i te kohinga) {}".
  • Tautoko mo te whakamahi i te tohu xml-rite ki nga korero: “var a = ‹hi/›;”. Inaianei kei te waatea noa tenei waahanga mo te poroporoaki me nga tonotono, kei te waahanga hoahoa.
  • Ko te wetereo mo nga apure kowhiria kei roto i te tohu "katoa" o nga momo hanganga ingoamuna ko: “{ var ?f:Int; }" (he rereke ki te poto "{ ?f:Int }").
  • Ko nga uara enum inaianei ka taea hei uara taunoa mo nga tautohe mahi: "taumahi foo‹T›(kōwhiringa:Kōwhiringa‹T› = Kore)".
  • Ko te wetereo "enum abstract Name(BasicType) {}" kaore e hiahiatia te "@:" prefix i roto i te "enum".
  • Tatau-aunoa mo nga tatauranga waitara:

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

  • Ko te kupu matua "waho" kaore e hiahiatia te whakamahi i te "@:" prefix.
  • Kua tangohia te kōwhiringa "whakaputanga Dynamic" ki te uru ki nga mara karaehe ma nga aho. E waatea ana mo nga karaehe o waho, ma te whakatinanatanga ranei ma te momo waitara.
  • Kua taapirihia te wetereo "A & B" mo te momo momo whakawhitinga, e pa ana ki nga hanganga ingoamuna me nga here tawhā momo. Kua tangohia te wetereo here tawhito.
  • Ko te hanga i nga tauira "Mahere" kau e waatea ana ma te wetereo "var map:Map‹Int, String› = [];" he rite ki te huinga.
  • He hanganga raraunga taapiri "haxe.ds.ReadOnlyArray".
  • Ka taea e metadata nga mokowāingoa ināianei (“@:prefix.name function() {…}”). He rite ano ki nga whakamaramatanga: “#if (some.flag ... #end”.
  • Kawa ratonga hou mo nga IDE e whakamahia ana i roto mono mo VSCode.
  • Whakahoutia nga whakamaramatanga o waho (waho) mo nga API Tukutuku me te taapiri i nga mea ngaro.

Source: opennet.ru

Tāpiri i te kōrero