Dimittis de lingua programmandi Haxe 4.0

available toolkit emissio Haxe 4.0, quod multi-paradigma altum-gradum programmandi linguae eiusdem nominis cum validis typingibus, compilator crucis et bibliothecae functionum vexillum comprehendit. Project translationem ad C++, HashLink/C, JavaScript, C#, Java, PHP, Python et Luae sustinet, necnon compilationem ad JVM, HashLink/JIT, Flash et Neko bytecode, cum accessu ad facultates indigenas cuiusque scoporum suggestuum. Compiler codice per distribui sub GPLv2 licentia, et bibliotheca vexillum et apparatus virtualis in Haxe . exculta neko sub licentia MIT.

Lingua is expressio orientatur validis typing. Object-orientatur, notiones programmationis genericae et functionis fulciuntur.
Haxe syntaxin prope ECMAscript and expands eius lineamenta ut typing statice, autotypum illationis, exemplar congruens, generica, iterator-substructio loramenta, AST macros, GADT (Generaled Types Data Algebraica), genera abstracta, structurae anonymae, definitiones ordinatae simpliciores, expressiones compilation conditionales, metadata agris adnectuntur. , classes et locutiones, interpolationes chordae ('nomen meum nomen $'), parametri genus ("nova Mainβ€ΉStringβ€Ί('foo')"), et quanto magis.

class Test {
static munus principale () {
var people = [
"ELISABETHAM" => "Programma";
"Joel" => "Design"
];

nam (nomen in people.keys()) {
var job = people[nomen];
vestigium ('$nomen$ officium pro vivi!');
}
}
}

Main innovations versio 4.0:

  • Nova syntaxis ad genus functionis specificandum "(nomen:String, age:Int)->Bool" vel "(String, Int)->Bool" pro "String->Int->Bool".
  • Sagitta munus syntaxis est" (a, b) -> a + b" loco "munus(a, b) reddere a + b".
  • Tutela contra problemata cum usu valorum Null (experimentalis pluma, optionally para pro certis agris, generibus vel fasciculis).
  • "ultimum" keyword est pro genere agrorum et variabilium localium quae incommutabiles sunt. "ultima" etiam ad functiones definiendas adhiberi possunt ne opprimantur hereditatibus et classibus/commodis quae hereditari non possunt.
  • Support Vexillum unicum pro basi generis "String" in omnibus compilatione scutorum praeter Neko.
  • Inaedificata interprete de integro rescripta, quae nunc sub nomine venit Censeo. Gratias ad novum interpretem, scripta et macros multo velocius currunt. Interactive debugging modus sustentatur.
  • Novum scopum systema compilation (scopum) Hashlink - summus perficientur runtime destinatus Haxe, compilationem bytecode pro JIT vel C sustinens, facilem integrationem habet cum C, ac accessus ad rationes numerorum et indices humili gradu.
  • Novum JVM scopum - sinit te bytecode generare jvm omissis Iava codice compilatione gradatim addendo "-D jvm" vexillum cum in Java nisl.
  • Facultas explicandi in puncto vocandi functiones vel constructores, etiamsi uti tales non declarantur.
  • Facultas inclusio Vestibulum extensiones cum declarans typum (ut "enum") utens "@:using (path.ToExtension)".
  • Typi abstracti nunc sustinent "statuam" versionem "@:op(a.b)" operator ad reload "obj.foo = bar" locutiones.
  • The "pro" ansa syntaxis nunc iterationem key-valorem sustinet: "pro (clave => valorem in collectione) {}".
  • Firmamentum est usus xml quasi markup in expressionibus: β€œvar a = β€Ήhi/β€Ί;”. Nunc enim, haec factura tantum praesto est ut parsing cum macros et in theatro designatur.
  • Syntaxis ad libitum agrorum in "plena" notatione structurae anonymi typi est: "{ var ?f:Int; }" (jocus brevis "{ ?f:Int }").
  • Valores Enum nunc esse possunt valorum defectuum ad rationes functiones: "munus fooβ€ΉTβ€Ί(option:Optionβ€ΉTβ€Ί = None)".
  • Nomen "enum abstractum" {}" syntaxin "@:" praepositionem in "enum" non amplius requirit.
  • Dinumeratio auto- rum abstractorum:

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

  • Keyword "externus" usum "@:" non amplius requirit.
  • optio remota "fabros Dynamic" accedere classium per chordas agrorum. Praesto ad classes externas vel per exsecutionem generis abstracti.
  • Addidit "A & B" syntaxin pro sectionis speciei, quae nunc tantum in structuris anonymis ac parametris angustiis applicatur. Syntaxis coactus vetus detracta est.
  • Inanis "Map" instantiarum creans praesto est per syntaxin "var map:Mapβ€ΉInt, Stringβ€Ί = []; similis est ordinata.
  • Data structura "haxe.ds.ReadOnlyArray" addidit.
  • Metadata nomina intervalla habere nunc potest ("@:praefix.nomen munus() {…}"). Similiter cum definitionibus: "#si".
  • Nova religio protocollo ad ID plugin for VSCode.
  • Renovata definitiones externas (externas) pro APIs interreti et additae desunt ones.

Source: opennet.ru