Itusilẹ ti ede siseto Haxe 4.0

Wa itusilẹ irinṣẹ Haxe 4.0, eyiti o pẹlu ede siseto ipele-giga pupọ-pupọ ti orukọ kanna pẹlu titẹ agbara, alakopọ-agbelebu ati ile-ikawe boṣewa ti awọn iṣẹ. Ise agbese na ṣe atilẹyin itumọ si C ++, HashLink/C, JavaScript, C #, Java, PHP, Python ati Lua, bakanna bi akopọ si JVM, HashLink/JIT, Flash ati Neko bytecode, pẹlu iraye si awọn agbara abinibi ti aaye ibi-afẹde kọọkan. koodu alakojo pin nipasẹ labẹ iwe-aṣẹ GPLv2, ati ile-ikawe boṣewa ati ẹrọ foju kan ti a dagbasoke fun Haxe neko labẹ iwe-aṣẹ MIT.

Ede ni ikosile-Oorun pẹlu lagbara titẹ. Orun-Oorun, jeneriki ati awọn ero siseto iṣẹ ni atilẹyin.
Sintasi Haxe sunmo ECMAScript ati gbooro sii awọn ẹya ara rẹ gẹgẹbi titẹ aimi, itọkasi autotype, ibaamu ilana, awọn jeneriki, ipilẹ-ipilẹ fun awọn losiwajulosehin, AST macros, GADT (Awọn oriṣi Data Algebraic Gbogbogbo), awọn oriṣi ajẹsara, awọn ẹya ailorukọ, awọn asọye orun ti o rọrun, awọn ikosile iṣakojọpọ ipo, so metadata si awọn aaye , awọn kilasi ati awọn ikosile, interpolation okun ('Orukọ mi ni $name'), tẹ awọn paramita ("Okun Akọkọ tuntun›('foo')"), ati pelu pelu.

Idanwo kilasi {
iṣẹ aimi akọkọ() {
eniyan var = [
"Elizabeth" => "Ìṣètò",
"Joel" => "Apẹrẹ"
];

fun (orukọ ni eniyan.bọtini ()) {
var ise = eniyan[orukọ];
itopase('$orukọ ṣe $iṣẹ fun igbesi aye!');
}
}
}

akọkọ awọn imotuntun ẹya 4.0:

  • Sintasi tuntun fun sisọ iru iṣẹ pato "(orukọ: Okun, ọjọ ori: Int)->Bool" tabi "(Okun, Int)->Bool" dipo "Okun-> Int-> Bool".
  • Sintasi iṣẹ itọka jẹ "(a, b) -> a + b" dipo "iṣẹ (a, b) pada a + b".
  • Idaabobo lodi si awọn iṣoro ti o ni nkan ṣe pẹlu lilo awọn iye Null (ẹya esiperimenta, aṣayan iṣẹ-ṣiṣe fun awọn aaye kan, awọn kilasi tabi awọn idii).
  • Koko "ipari" jẹ fun awọn aaye kilasi ati awọn oniyipada agbegbe ti ko le yipada. "ipari" tun le ṣee lo lati setumo awọn iṣẹ lati ṣe idiwọ fun wọn lati bori nipasẹ ogún ati fun awọn kilasi/awọn atọkun ti a ko le jogun.
  • .Оддержка Iwọn Unicode fun iru ipilẹ “Okun” lori gbogbo awọn ibi-afẹde akopọ ayafi Neko.
  • Onitumọ ti a ṣe sinu tun kọ lati ibere, eyiti o wa labẹ orukọ ni bayi Evalu. Ṣeun si onitumọ tuntun, awọn iwe afọwọkọ ati awọn macros ṣiṣẹ ni iyara pupọ. Ipo n ṣatunṣe aṣiṣe jẹ atilẹyin.
  • Eto ibi-afẹde tuntun fun akopọ (afojusun) Hashlink - akoko ṣiṣe ṣiṣe giga ti a ṣe apẹrẹ pataki fun Haxe, atilẹyin akojọpọ si bytecode fun JIT tabi C, ni isọpọ irọrun pẹlu C, bakannaa iraye si awọn oriṣi nọmba kekere ati awọn itọka.
  • Ibi-afẹde JVM Tuntun - ngbanilaaye lati ṣe agbekalẹ jvm bytecode nipa yiyọkuro igbesẹ akopo koodu Java nipa fifi asia “-D jvm” kun nigbati o ba fojusi ni Java.
  • Agbara lati ṣe inline-fifiranṣẹ ni aaye ti awọn iṣẹ pipe tabi awọn oluṣeto, paapaa ti wọn ko ba sọ bi iru bẹẹ.
  • O ṣeeṣe ti ifisi aimi amugbooro nigbati o ba n kede iru kan (gẹgẹbi "enum") nipa lilo "@: lilo (ọna.ToExtension)".
  • Awọn iru abstract ṣe atilẹyin ẹya “ṣeto” ti “@:op(a.b)” oniṣẹ lati tun gbejade awọn ikosile “obj.foo = bar”.
  • Sintasi loop "fun" ni bayi ṣe atilẹyin aṣetunṣe iye-bọtini: "fun (bọtini => iye ninu gbigba) {}".
  • Atilẹyin fun lilo isamisi-bii xml ni awọn ikosile: “var a = ‹hi/›;”. Ni bayi, ẹya yii wa fun sisọtọ pẹlu awọn macros ati pe o wa ni ipele apẹrẹ.
  • Awọn sintasi fun awọn aaye iyan ni “kikun” ami akiyesi ti awọn iru igbekalẹ ailorukọ jẹ: “{ var ?f:Int; }" (omiiran si kukuru "{ ?f:Int }").
  • Awọn iye Enum le jẹ awọn iye aiyipada fun awọn ariyanjiyan iṣẹ: " foo "T" (aṣayan: Aṣayan ‹T› = Ko si)".
  • Orukọ "enum abstract Name(BasicType) {}" syntax ko nilo ìpele "@:" mọ ni "enum".
  • Iṣiro-laifọwọyi fun awọn iṣiro áljẹbrà:

    enum áljẹbrà Foo(Int) {
    var A; // 0
    var B; // 1
    }
    enum áljẹbrà Pẹpẹ (okun) {
    var A; // "A"
    var B; // "B"
    }

  • Koko "ita" ko nilo lilo "@:" ìpele mọ.
  • Ti yọ aṣayan kuro "awọn apẹẹrẹ Yiyi" lati wọle si awọn aaye kilasi nipasẹ awọn okun. Wa fun awọn kilaasi ode tabi nipasẹ imuse nipasẹ iru abọ-ọrọ.
  • Ṣafikun “A & B” sintasi fun iru ikorita, eyiti o kan lọwọlọwọ si awọn ẹya ailorukọ ati iru awọn ihamọ paramita. Atijọ inira sintasi ti a ti kuro.
  • Ṣiṣẹda awọn apẹẹrẹ "Map" ofo wa nipasẹ sintasi "var maapu: Map‹Int, String› = [];" iru si ohun orun.
  • Eto data ti a ṣafikun “haxe.ds.ReadOnlyArray”.
  • Metadata le ni awọn aaye orukọ ("@: prefix.name function() {…}"). Bakanna pẹlu awọn itumọ: "#if ( some.flag ... #end".
  • Ilana iṣẹ titun fun awọn IDE ti a lo ninu itanna fun VSCode.
  • Awọn itumọ ita ti a ṣe imudojuiwọn (ita) fun awọn API Wẹẹbu ati awọn ti o padanu.

orisun: opennet.ru

Fi ọrọìwòye kun