Gefa út forritunarmálið Haxe 4.0

Laus losun verkfærasetts Haxe 4.0, sem felur í sér samnefnt forritunarmál á háu stigi með mörgum hugmyndum með sterkri vélritun, krossþýðanda og stöðluðu aðgerðasafni. Verkefnið styður þýðingar yfir á C++, HashLink/C, JavaScript, C#, Java, PHP, Python og Lua, sem og samantekt á JVM, HashLink/JIT, Flash og Neko bækakóða, með aðgang að innfæddum möguleikum hvers markvettvangs. Þjálfarakóði dreift af undir GPLv2 leyfinu, og venjulegt bókasafn og sýndarvél þróuð fyrir Haxe Neko undir MIT leyfi.

Tungumálið er tjáningarmiðað með sterkri vélritun. Hlutbundin, almenn og hagnýt forritunarhugtök eru studd.
Haxe setningafræði er nálægt ECMAScript og stækkar eiginleikar þess eins og kyrrstætt vélritun, ályktun sjálfvirkrar tegundar, mynstursamsvörun, almennar tölur, endurtekningar-undirstaða fyrir lykkjur, AST fjölvi, GADT (almennar algebraískar gagnategundir), óhlutbundnar tegundir, nafnlausar uppbyggingar, einfaldaðar fylkisskilgreiningar, skilyrtar samsetningartjáningar, tengja lýsigögn við reiti og miklu meira.

bekkjarpróf {
static fall main() {
var fólk = [
"Elizabeth" => "Forritun",
"Joel" => "Hönnun"
];

fyrir (nafn í people.keys()) {
var starf = fólk[nafn];
trace('$nafn vinnur $vinnu fyrir lífsviðurværi!');
}
}
}

Helstu nýjungar útgáfa 4.0:

  • Ný setningafræði til að tilgreina fallgerð "(nafn:String, age:Int)->Bool" eða "(String, Int)->Bool" í stað "String->Int->Bool".
  • Arrow fall setningafræði er "(a, b) -> a + b" í stað "fall(a, b) skilar a + b".
  • Vörn gegn vandamálum sem tengjast notkun á núllgildum (tilraunaeiginleiki, valfrjálst virkur fyrir ákveðna sviðum, flokkum eða pakka).
  • „Endanlegt“ leitarorð er fyrir flokkareiti og staðbundnar breytur sem eru óbreytanlegar. "endanlegt" er einnig hægt að nota til að skilgreina aðgerðir til að koma í veg fyrir að þær verði hnekkjaðar af erfðum og fyrir flokka/viðmót sem ekki er hægt að erfa.
  • Stuðningur Unicode staðall fyrir grunngerðina „String“ á öllum safnmarkmiðum nema Neko.
  • Innbyggður túlkur endurskrifaður frá grunni, sem nú kemur undir nafninu Metið. Þökk sé nýja túlknum keyra forskriftir og fjölvi mun hraðar. Gagnvirk kembiforrit er studd.
  • Nýtt markkerfi fyrir samantekt (target) Hashlink - afkastamikill keyrslutími sem er hannaður sérstaklega fyrir Haxe, styður samantekt á bækikóða fyrir JIT eða C, hefur auðvelda samþættingu við C, auk aðgangs að lágu tölulegum gerðum og ábendingum.
  • Nýtt JVM-markmið - gerir þér kleift að búa til jvm bætikóða með því að sleppa Java kóða samantektarskrefinu með því að bæta við "-D jvm" fánanum þegar þú miðar í Java.
  • Hæfni til að dreifa í línu þegar hringt er í aðgerðir eða smíði, jafnvel þó að þær séu ekki lýstar sem slíkar.
  • Möguleiki á inntöku truflanir framlengingar þegar lýst er yfir tegund (eins og "enum") með því að nota "@:using(path.ToExtension)".
  • Ágripsgerðir styðja nú "setja" útgáfu af "@:op(ab)" stjórnandanum til að endurhlaða "obj.foo = bar" tjáning.
  • "For" lykkjan setningafræði styður nú lykilgildi endurtekningu: "for (lykill => gildi í safni) {}".
  • Stuðningur við að nota xml-lík merkingu í tjáningum: "var a = ‹hi/›;". Í bili er þessi eiginleiki aðeins í boði fyrir þáttun með fjölvi og er á hönnunarstigi.
  • Setningafræðin fyrir valfrjálsa reiti í „fullri“ merkingu nafnlausra byggingategunda er: „{ var ?f:Int; }" (valkostur við stutta "{ ?f:Int }").
  • Enum gildi geta nú verið sjálfgefin gildi fyrir falla: „fall foo‹T›(valkostur: Valkostur‹T› = Enginn)“.
  • "enum abstract Name(BasicType) {}" setningafræðin krefst ekki lengur "@:" forskeytsins í "enum".
  • Sjálfvirk númerun fyrir óhlutbundna upptalningar:

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

  • „Ytri“ leitarorðið krefst ekki lengur notkunar á „@:“ forskeytinu.
  • Fjarlægði valkostinn "útfærslur Dynamic“ til að fá aðgang að bekkjarreitum í gegnum strengi. Í boði fyrir utanaðkomandi flokka eða í gegnum útfærslu með abstrakt gerð.
  • Bætt við "A & B" setningafræði fyrir tegundarskurð, sem eins og er á aðeins við um nafnlausar mannvirki og takmarkanir tegundarbreytu. Gamla setningafræði þvingunar hefur verið fjarlægð.
  • Það er hægt að búa til tóm „Map“ tilvik með setningafræðinni „var map:Map‹Int, String› = []; svipað fylki.
  • Bætt við gagnaskipulagi "haxe.ds.ReadOnlyArray".
  • Lýsigögn geta nú haft nafnrými ("@:prefix.name fall() {...}"). Svipað með skilgreiningar: "#ef (einhver.flag ... #end".
  • Ný þjónustusamskiptareglur fyrir IDE notaðar í viðbót fyrir VSCode.
  • Uppfærðar ytri skilgreiningar (ytri) fyrir vef-API og bætt við þeim sem vantar.

Heimild: opennet.ru

Bæta við athugasemd