Eisiúint na teanga ríomhchlárúcháin Haxe 4.0

Ar fáil scaoileadh trealamh uirlisí Hax 4.0, lena n-áirítear an teanga cláir ardleibhéil il-paradigm den ainm céanna le clóscríobh láidir, tras-tiomsaitheoir agus leabharlann feidhmeanna caighdeánach. Tacaíonn an tionscadal le haistriúchán go C++, HashLink/C, JavaScript, C#, Java, PHP, Python agus Lua, chomh maith le tiomsú go bytecode JVM, HashLink/JIT, Flash agus Neko, le rochtain ar chumais dhúchasacha gach ardáin sprice. Cód tiomsaitheoir dáilte ag faoi ​​cheadúnas GPLv2, agus leabharlann chaighdeánach agus meaisín fíorúil a forbraíodh do Haxe Neko faoi ​​cheadúnas MIT.

Tá teanga dírithe ar léiriú le clóscríobh láidir. Tacaítear le coincheapa clársceidealaithe atá dírithe ar oibiachtaí, cineálacha agus feidhmiúla.
Tá comhréir Haxe gar do ECMAScript agus ag leathnú a ghnéithe mar chlóscríobh statach, tátal uathchóipe, meaitseáil patrún, cineálacha cineálacha, iterator-bhunaithe do lúba, macraí AST, GADT (Cineálacha Ginearálta Ailgéabracha Sonraí), cineálacha teibí, struchtúir gan ainm, sainmhínithe eagair simplithe, nathanna tiomsaithe coinníollach, meiteashonraí a cheangal le réimsí , ranganna agus nathanna, idirshuíomh teaghrán ('$name' is ainm dom'), paraiméadair cineáil ("Príomhtheaghrán nua ‹Teaghrán ›('foo')"), agus i bhfad níos mó.

tástáil ranga {
príomhfheidhm statach() {
daoine var = [
"Elizabeth" => "Clárú",
"Joel" => "Dearadh"
];

le haghaidh (ainm i people.keys()) {
var post = daoine[ainm];
rian ('Déanann $name $job le haghaidh maireachtála!');
}
}
}

An príomh- nuálaíochtaí leagan 4.0:

  • Comhréir nua chun cineál feidhme a shonrú "(ainm: Teaghrán, aois: Int) -> Bool" nó "(Teaghrán, Int) -> Bool" in ionad "Teaghrán-> Int-> Bool".
  • Tá comhréir fheidhm arrow "(a, b) -> a + b" in ionad "feidhm (a, b) fill a + b".
  • Cosaint i gcoinne fadhbanna a bhaineann le húsáid luachanna Null (gné thurgnamhach, cumasaithe go roghnach do réimsí, ranganna nó pacáistí áirithe).
  • Tá an eochairfhocal "deiridh" ann do réimsí ranga agus d'athróga áitiúla atá domhalartaithe. is féidir "deiridh" a úsáid freisin chun feidhmeanna a shainiú chun cosc ​​a chur orthu a bheith sáraithe ag oidhreacht agus le haghaidh aicmí/comhéadain nach féidir a fháil le hoidhreacht.
  • Tacaíocht Caighdeán Unicode don bhunchineál "Teaghrán" ar gach sprioc tiomsaithe seachas Neko.
  • Ateangaire ionsuite athscríofa ón tús, a thagann faoin ainm anois Déan measúnú. A bhuíochas leis an ateangaire nua, ritheann scripteanna agus macraí i bhfad níos tapúla. Tacaítear le modh dífhabhtaithe idirghníomhach.
  • Córas sprice nua le tiomsú (sprioc) Hashlink - am rite ardfheidhmíochta atá deartha go sonrach do Haxe, a thacaíonn le tiomsú go bytecode do JIT nó C, tá comhtháthú éasca aige le C, chomh maith le rochtain ar chineálacha uimhriúla agus leideanna íseal-leibhéil.
  • Sprioc JVM nua - ligeann sé duit bytecode jvm a ghiniúint trí chéim tiomsaithe an chóid Java a scipeáil tríd an mbratach "-D jvm" a chur leis agus tú ag díriú ar Java.
  • An cumas feidhmeanna nó cruthaitheoirí a inlíne-imscaradh ag an bpointe glaonna, fiú mura ndearbhaítear iad.
  • Féidearthacht cuimsiú síntí statacha agus cineál á dhearbhú (amhail "enum") ag baint úsáide as "@:using (path.ToExtension)".
  • Tacaíonn cineálacha teibí anois le leagan "set" den oibreoir "@:op(ab)" chun slonn "obj.foo = bar" a athlódáil.
  • Tacaíonn an chomhréir lúb "for" anois le atriall eochairluacha: "do (eochair => luach sa bhailiúchán) {}".
  • Tacaíocht chun marcáil cosúil le xml a úsáid i sloinn: “var a = ‹hi/›;”. Faoi láthair, níl an ghné seo ar fáil ach le parsáil le macraí agus tá sé ag an gcéim deartha.
  • Is é an chomhréir do réimsí roghnacha sa nodaireacht “iomlán” de chineálacha struchtúir gan ainm ná: “{ var ?f:Int; }" (mar mhalairt ar an ngearr "{ ?f:Int }").
  • Is féidir le luachanna Enum a bheith ina luachanna réamhshocraithe anois le haghaidh argóintí feidhme: "function foo‹T›(option:Option‹T"> = Dada)".
  • Ní éilíonn an chomhréir "enum abstract Name(BasicType) {}" an réimír "@:" in "enum" a thuilleadh.
  • Uath-uimhriú le haghaidh uimhreacha teibí:

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

  • Ní éilíonn an eochairfhocal "seachtrach" úsáid a bhaint as an réimír "@:" a thuilleadh.
  • Baineadh an rogha "uirlisí Dinimiciúla" chun rochtain a fháil ar réimsí ranga trí theaghráin. Ar fáil do ranganna seachtracha nó trí chur i bhfeidhm de réir cineáil teibí.
  • Cuireadh comhréir "A & B" leis maidir le trasnú cineáil, nach mbaineann faoi láthair ach le struchtúir gan ainm agus srianta cineál paraiméadair. Baineadh an sean-chomhréir sriantachta.
  • Is féidir cásanna folamh "Léarscáil" a chruthú tríd an gcomhréir "var map:Map‹Int, String> = [];" cosúil le sraith.
  • Cuireadh struchtúr sonraí leis "haxe.ds.ReadOnlyArray".
  • Is féidir spásanna ainm a bheith ag meiteashonraí anois (“@:prefix.name function() {…}”). Mar an gcéanna le sainmhínithe: “#if (some.flag ... #deireadh".
  • Prótacal seirbhíse nua le haghaidh IDEanna a úsáidtear i Breiseán le haghaidh VSCcode.
  • Nuashonraíodh sainmhínithe seachtracha (seachtrach) le haghaidh APIanna Gréasáin agus cuireadh cinn atá in easnamh leis.

Foinse: oscailtenet.ru

Add a comment