Lage langaj pwogramasyon Haxe 4.1

Disponib lage zouti Haxe 4.1, ki gen ladan lang pwogramasyon wo nivo milti-paradig menm non ak sezisman fò, yon konpile kwa ak yon bibliyotèk estanda fonksyon. Pwojè a sipòte tradiksyon nan C++, HashLink/C, JavaScript, C#, Java, PHP, Python ak Lua, osi byen ke konpilasyon nan JVM, HashLink/JIT, Flash ak Neko bytecode, ak aksè nan kapasite natif natal nan chak platfòm sib. Kòd konpilatè distribiye pa anba lisans GPLv2, ak bibliyotèk estanda ak machin vityèl devlope pou Haxe HashLink и Nèko anba lisans MIT.

Lang se oryante ekspresyon ak sezisman fò. Yo sipòte teknik pwogramasyon oryante objè, jenerik ak fonksyonèl. Sentaks Haxe se pre ECMAScript ak elaji karakteristik li yo tankou sezisman estatik, enferans ototip, matche modèl, jenerik, bouk ki baze sou iteratè, makro AST, GADT (Generalized Algebraic Data Types), kalite abstrè, estrikti anonim, definisyon senplifye etalaj, ekspresyon konpilasyon kondisyonèl, atache metadata nan jaden. , klas ak ekspresyon, entèpolasyon fisèl ("'Non mwen se $non'"), paramèt kalite ('nouvo Main ("foo")') ak plis toujou.

tès klas {
fonksyon estatik prensipal () {
final moun = [
"Elizabeth" => "Programming",
"Joel" => "Design"
];

pou (non => travay nan moun) {
trace('$non fè $travay pou viv!');
}
}
}

Nouvo karakteristik nan vèsyon 4.1:

  • Te ajoute ke retouche optimize.
  • Te ajoute yon nouvo API inifye pou manyen eksepsyon.
  • Konstriksyon "eseye {} catch(e) {}" yo pèmèt kòm yon kout pou "eseye {} catch(e: haxe.Exception) {}".
  • Te ajoute sipò SSL nan entèprèt eval la.
  • JVM sib la pa konsidere kòm eksperimantal ankò.
  • Pou Pwotokòl Sèvè Lang, sipò pou fonksyon "Ale aplikasyon" ak "Jwenn referans" yo te ajoute.
  • Amelyore non varyab lokal tanporè nan kòd pwodwi. Retire redondants "retounen;" nan fonksyon flèch san yon valè retounen.
  • Konbinezon aksè (jwenn, default) yo otorize sou jaden (getter sèlman, konpòtman devwa default).
  • Pèmèt ogmante ak diminye operatè pou jaden yo kalite abstrè.
  • Amelyore inlining nan bouk for lè l sèvi avèk iteratè anonim.
  • js: Amelyore aplikasyon StringMap pou ES5.
  • js: Yo te ajoute jenerasyon let varyab nan opsyon konpilatè "-D js-es=6", jenerasyon klas ES6 yo te amelyore.
  • lua: "StringIterator" optimize, manyen erè amelyore.
  • php: Optimize "Std.isOfType" pou kalite baz.
  • php: Jenere etalaj kounye a aplike entèfas natif natal "Iterator", "IteratorAggregate", "Countable".
  • cs: Te ajoute metadata "@:assemblyMeta" ak "@:assemblyStrict".
  • python: ajoute aplikasyon "__contains__" nan objè anonim
    ak "__getitem__", ki pèmèt yo itilize kòm diksyonè nan kòd la jenere.

  • jvm: Pèfòmans siyifikativman amelyore gras a yon nouvo fason pou jwenn aksè nan fonksyon tape ak jenere koòdone adisyonèl nan ka kote objè yo itilize kòm estrikti anonim (yo ap anpeche rechèch pwopriyete dinamik):
    Lage langaj pwogramasyon Haxe 4.1

Amelyorasyon nan bibliyotèk estanda a:

  • Te ajoute "Array.contains" fonksyon.
  • Te ajoute "Array.keyValueIterator", ki aplike iterasyon kle-valè pou etalaj ("pou (kle => valè nan etalaj)").
  • Te ajoute kalite kontrent "haxe.Constraints.NotVoid".
  • В класс «Lambda» добавлены функции «findIndex» и «foldi».
  • Aplike "aksè etalaj" (aksè atravè "arr[i]") ak iterasyon kle-valè pou "haxe.ds.HashMap".
  • jvm: Enplemante vèsyon JVM-espesifik nan "StringMap", "sys.thread.Lock", "sys.thread.Thread".
  • java/jvm: Itilize enplemantasyon natif natal "MD5", "SHA-1" ak "SHA-256" pou modil "haxe.crypto".
  • macro: Te ajoute "haxe.macro.Context.containsDisplayPosition(pos)".
  • nullsafety: Mòd "Strict" kounye a trete kòm yon sèl fil; te ajoute mòd "StrictThreaded".
  • "Std.is" te depreche an favè "Std.isOfType".
  • Te ajoute yon avètisman lè w ap itilize varyab lokal san valè nan fèmti.
  • js: "untyped __js__(kod, args)" se obsolèt, ranplase pa "js.Syntax.code (kòd, args)".
  • php/neko: "neko.Web" ak "php.Web" yo te depreche epi yo pral deplase nan bibliyotèk "hx4compat" pita.

Nan pwochen lage a yo planifye:

  • Amelyorasyon manadjè pake haxelib.
  • Asynchrone sistèm API baze libuv.
  • Coroutines.
  • Deklare fonksyon estatik modilè ak varyab san yo pa kreye klas (deja disponib nan bati lannwit).

Sous: opennet.ru

Add nouvo kòmantè