Sgaoileadh cànan prògramadh Haxe 4.0

Ri fhaighinn sgaoileadh innealan Hagh 4.0, a tha a’ toirt a-steach cànan prògramadh àrd-ìre ioma-paradigm den aon ainm le clò-sgrìobhadh làidir, tar-chruinniche agus leabharlann àbhaisteach de ghnìomhan. Bidh am pròiseact a’ toirt taic do eadar-theangachadh gu C ++, HashLink/C, JavaScript, C#, Java, PHP, Python agus Lua, a bharrachd air a bhith a’ cur ri chèile gu JVM, HashLink/JIT, Flash agus Neko bytecode, le cothrom air comasan dùthchasach gach àrd-ùrlar targaid. Còd compiler air a sgaoileadh le fo chead GPLv2, agus leabharlann àbhaisteach agus inneal brìgheil air a leasachadh airson Haxe neko fo chead MIT.

Tha cànan stèidhichte air abairt le sgrìobhadh làidir. Thathas a’ toirt taic do bhun-bheachdan prògramadh cuspaireil, gnèitheach agus gnìomh.
Tha co-chòrdadh Haxe faisg air ECMAScript agus a ’leudachadh na feartan aige leithid clò-sgrìobhadh statach, co-dhùnadh autotype, maidseadh phàtranan, gnèitheachd, stèidhichte air iterator airson lùban, macros AST, GADT (Seòrsan Dàta Ailgéabrach Coitcheann), seòrsachan eas-chruthach, structaran gun urra, mìneachaidhean sreath simplichte, abairtean cruinneachaidh cumhach, a’ ceangal meata-dàta ri raointean , clasaichean agus abairtean, eadar-shìneadh sreang ('Is e $name an t-ainm a th' orm'), paramadairean seòrsa ("Prìomh ‹ sreang ùr"> ('foo')"), agus tòrr a bharrachd.

Deuchainn clas {
prìomh ghnìomh statach () {
var daoine = [
"Ealasaid" => "Prògramachadh",
"Joel" => "Dealbhadh"
];

airson (ainm ann an daoine.keys()) {
var job = daoine [ainm];
lorg ('Tha $name a' dèanamh $work airson bith-beò!');
}
}
}

prìomh innleachdan tionndadh 4.0:

  • Co-chòrdadh ùr airson an seòrsa gnìomh a shònrachadh "(ainm: String, aois: Int) -> Bool" no "(String, Int) -> Bool" an àite "String-> Int-> Bool".
  • Is e co-chòrdadh gnìomh saighead "(a, b) -> a + b" an àite "gnìomh (a, b) till a + b".
  • Dìon an aghaidh dhuilgheadasan co-cheangailte ri cleachdadh luachan Null (feart deuchainneach, air a chomasachadh gu roghnach airson raointean, clasaichean no pasganan sònraichte).
  • Tha am prìomh fhacal “deireannach” airson raointean clas agus caochladairean ionadail nach gabh atharrachadh. faodar “deireannach” a chleachdadh cuideachd gus gnìomhan a mhìneachadh gus casg a chuir orra bho bhith air an toirt thairis le dìleab agus airson clasaichean / eadar-aghaidhean nach gabh an sealbhachadh.
  • taic Inbhe Unicode airson an seòrsa bunaiteach “String” air a h-uile targaid cruinneachaidh ach a-mhàin Neko.
  • Eadar-theangair togte air ath-sgrìobhadh bhon fhìor thoiseach, a tha a-nis a’ tighinn fon ainm Dèan measadh. Taing don eadar-theangair ùr, bidh sgriobtaichean agus macros a’ ruith fada nas luaithe. Tha taic ri modh deasbaid eadar-ghnìomhach.
  • Siostam targaid ùr airson a chur ri chèile (targaid) Hashlink - ùine ruith àrd-choileanadh air a dhealbhadh gu sònraichte airson Haxe, a’ toirt taic do chruinneachadh gu bytecode airson JIT no C, le amalachadh furasta le C, a bharrachd air ruigsinneachd air seòrsachan àireamhach aig ìre ìosal agus comharran.
  • Targaid JVM ùr - a’ leigeil leat jvm bytecode a ghineadh le bhith a’ leum air ceum cruinneachaidh còd Java le bhith a’ cur a’ bhratach “-D jvm” ris nuair a bhios tu ag amas air Java.
  • Comas air in-loidhne a chuir a-steach aig àm gairm ghnìomhan no luchd-togail, eadhon ged nach eil iad air an ainmeachadh mar sin.
  • Comasach air in-ghabhail leudachain statach nuair a thathar a’ cur an cèill seòrsa (leithid “enum”) a’ cleachdadh “@:using (path.ToExtension)”.
  • Tha seòrsaichean geàrr-chunntas a-nis a’ toirt taic do dhreach “set” den ghnìomhaiche “@:op(ab)” gus abairtean “obj.foo = bar” ath-luchdachadh.
  • Tha an co-chàradh lùb “for” a-nis a’ cur taic ri tionndadh prìomh luach: “airson (iuchair => luach sa chruinneachadh) {}".
  • Taic airson a bhith a’ cleachdadh comharradh coltach ri xml ann an abairtean: “var a = ‹hi/›;”. Airson a-nis, chan eil am feart seo ri fhaighinn ach airson parsadh le macros agus tha e aig ìre dealbhaidh.
  • Is e an co-chòrdadh airson raointean roghainneil anns a’ chomharra “làn” de sheòrsan structair gun urra: “{ var ?f:Int; }" (roghainn eile seach a' gheàrr "{ ?f:Int }").
  • Faodaidh luachan Enum a-nis a bhith nan luachan bunaiteach airson argamaidean gnìomh: “function foo‹T› (roghainn: Option‹T› = Chan eil gin)".
  • Chan eil an co-chòrdadh "enum abstract Name (BasicType) {}" a-nis ag iarraidh an ro-leasachan "@:" ann an "enum".
  • Àireamhachadh fèin-ghluasadach airson àireamhan eas-chruthach:

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

  • Chan fheum am prìomh fhacal "taobh a-muigh" an ro-leasachan "@:" a chleachdadh tuilleadh.
  • Thoir air falbh an roghainn "innealan Dynamic" gus faighinn gu raointean clas tro shreathan. Ri fhaighinn airson clasaichean taobh a-muigh no tro bhuileachadh le seòrsa eas-chruthach.
  • Chaidh co-chòrdadh “A & B” a chur ris airson eadar-ghearradh seòrsa, nach eil an-dràsta a’ buntainn ach ri structaran gun urra agus cuingeadan paramadair seòrsa. Tha an t-seann cho-chòrdadh cuingealachaidh air a thoirt air falbh.
  • Tha cruthachadh eisimpleirean “Mapa” falamh ri fhaighinn tron ​​cho-chòrdalachd “var map:Map‹Int, String › = [];” coltach ri sreath.
  • Structar dàta air a chur ris "haxe.ds.ReadOnlyArray".
  • Faodaidh ainmean-àite a bhith aig meata-dàta (“@: prefix.name function() {…}”). San aon dòigh le mìneachaidhean: “#if (some.flag ... #end".
  • Pròtacal seirbheis ùr airson IDEan air a chleachdadh ann an Plugin airson vscode.
  • Mìneachaidhean taobh a-muigh ùrachadh (taobh a-muigh) airson APIan lìn agus cuir ris an fheadhainn a tha a dhìth.

Source: fosgailtenet.ru

Cuir beachd ann