áá¬áá¬á
áá¬ážáááº
Haxe syntax ááẠECMAScript ááŸáá·áº áá®ážá
ááºáá«áááºá
á¡áááºážáááºá
á¬áá±ážááœá² {
static function main() {
var áá°ááœá± = [
"Elizabeth" => "áááá¯ááááºáá±ážááœá²ááŒááºáž",
"Joel" => "áá®ááá¯ááºáž"
];
for (name in people.keys()) {
var job = áá°[á¡áááº];
trace('$name does $job for a living!');
}
}
}
á¡ááá
- áá¯ááºáá±á¬ááºáá»ááºá¡áá»áá¯ážá¡á á¬áž "(á¡áááº:Stringá age:Int)->Bool" ááá¯á·ááá¯áẠ"(String, Int)->Bool" á¡á á¬áž "String->Int->Bool" ááᯠáááºááŸááºááŒááºážá¡ááœáẠsyntax á¡áá áºá
- Arrow function syntax ááẠ"(a, b) -> a + b" á¡á á¬áž "function(a, b) return a + b" ááŒá áºáááºá
- Null áááºááá¯ážáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááŒááºážááŸáá·áº áááºá ááºááŒá¿áá¬áá»á¬ážááᯠáá¬ááœááºááŒááºáž (á ááºážáááºááŸá¯á¡ááºá¹áá«áááºá á¡áá»áá¯á·áá±á¬áááºáááºáá»á¬ážá á¡áááºážáá»á¬áž ááá¯á·ááá¯áẠáááºáá±á·áá»áºáá»á¬ážá¡ááœáẠááœá±ážáá»ááºááá¯ááºáááº)á
- "áá±á¬ááºáá¯á¶áž" áá±á¬á·áá»ááºá áá¬ážáá¯á¶ážááẠáááŒá±á¬ááºážáá²ááá¯ááºáá±á¬ á¡áááºážááœááºáá»á¬ážááŸáá·áº áá±áááá¯ááºáᬠááááºážááŸááºáá»á¬ážá¡ááœáẠááŒá áºáááºá "final" ááᯠá¡ááœá±áááºáá¶ááŒááºážá០ááœáŸááºážááá¯ážáá¶áááŒááºážá០áá¬ááœááºáááºááŸáá·áº á¡ááœá±áááºáá¶ááááá±á¬ á¡áááºáž/á¡ááºáá¬áá±á·á áºáá»á¬ážá¡ááœáẠáá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠáááºááŸááºáááºáááºáž á¡áá¯á¶ážááŒá¯ááá¯ááºáááºá
-
áá±á¬ááºáá¶á· Neko ááŸááœá²á á á¯á ááºážááŸá¯áá áºááŸááºá¡á¬ážáá¯á¶ážááŸá á¡ááŒá±áá¶á¡áá»áá¯ážá¡á á¬áž "String" á¡ááœáẠáá°áá®áá¯ááºá á¶á - Built-in á
áá¬ážááŒááºá á¡á
ááá± ááŒááºáá±ážááŒá®áž á¡áᯠáá¬áááºá¡á±á¬ááºááŸá¬ áá«áá¬áá¬á
ááá±á¬ááºážáá±á¬ . á áá¬ážááŒááºá¡áá áºááŒá±á¬áá·áºá áá¬ááºááœáŸááºážáá»á¬ážááŸáá·áº áááºáááá¯áá»á¬ážááẠááá¯ááá¯ááŒááºáááºá áœá¬ áá¯ááºáá±á¬ááºááá¯ááºáá²á·áááºá á¡ááŒááºá¡ááŸááºá¡á¬ážááŒáá·áº á¡ááŸá¬ážááŸá¬ááŒááºááŒááºážáá¯ááºááᯠáá¶á·ááá¯ážáá¬ážáááºá - á
á¯á
ááºážááŸá¯ (áá
áºááŸááº) á¡ááœáẠáá
áºááŸááºá
áá
áºá¡áá
áº
Hashlink - JIT ááá¯á·ááá¯áẠC á¡ááœáẠbytecode ááá¯á· á á¯á ááºážááŸá¯ááᯠáá¶á·ááá¯ážáá±ážááá·áº Haxe á¡ááœáẠáá®ážááá·áº áá®ááá¯ááºážáá¯ááºáá¬ážáá±á¬ á áœááºážáá±á¬ááºáááºááŒáá·áº runtime ááẠC ááŸáá·áº ááœááºáá°á áœá¬ áá±á«ááºážá ááºážááá¯ááºááá·áºá¡ááŒáẠá¡ááá·áºáááá·áº ááááºážá¡áá»áá¯ážá¡á á¬ážáá»á¬ážááŸáá·áº ááœáŸááºááŒáá»ááºáá»á¬ážááá¯áá« ááá°á¡áá¯á¶ážááŒá¯ááá¯ááºáá«áááºá - JVM áá áºááŸááºá¡áá Ạ- Java ááœáẠáá áºááŸááºáá¬ážááá·áºá¡áá« "-D jvm" á¡áá¶ááᯠááá·áºááœááºážááŒááºážááŒáá·áº Java áá¯ááºá á¯á ááºážááŸá¯á¡ááá·áºááᯠáá»á±á¬áºááœá¬ážááŒááºážááŒáá·áº jvm bytecode ááᯠáááºáá®ážááá¯ááºá á±áá«áááºá
- áá¯ááºáá±á¬ááºáá»ááºáá»á¬áž ááá¯á·ááá¯áẠáááºáá±á¬ááºáá°áá»á¬ážááᯠáá±á«áºááá¯ááá·áºáá±áá¬ááœáẠááá¯ááºáž-deploy áá¯ááºááá¯ááºá áœááºážá
- áá«áááºááá¯ááºááŒá±
static extensions áá»á¬áž "@:using(path.ToExtension)" ááᯠá¡áá¯á¶ážááŒá¯á á¡áá»áá¯ážá¡á á¬áž (á¥ááᬠ"enum" áá²á·ááá¯á·) ááŒá±ááŒá¬ááá·áºá¡áá«á - ááᯠá ááá¹ááá¡áá»áá¯ážá¡á á¬ážáá»á¬ážááẠ"@:op(ab)" á¡á±á¬áºááá±áá¬á "á¡á á¯á¶" áá¬ážááŸááºážááᯠ"obj.foo = bar" á áá¬ážáááºáá»á¬ážááᯠááŒááºáááºá áááºááẠáá¶á·ááá¯ážáá±ážáá«áááºá
- "for" loop syntax ááẠáá±á¬á·áááºááá¯ážáááºááŒááºážá¡á¬áž áá¶á·ááá¯ážáá±ážáá±áá«ááŒá®- "for (key => value in collection) {}" á
- á¡áá¯á¶ážá¡ááŸá¯ááºážáá»á¬ážááœáẠxml-like markup á¡áá¯á¶ážááŒá¯ááŒááºážá¡ááœáẠáá¶á·ááá¯ážááŸá¯- âvar a = â¹hi/âº;â. ááá¯á¡áá»áááºááœááºá á€á¡ááºá¹áá«áááºááẠáááºáááá¯ááŒáá·áº ááœá²ááŒááºážá áááºááŒá¬áááºá¡ááœááºáᬠáááá¯ááºááŒá®áž áá®ááá¯ááºážá¡ááá·áºááœáẠááŸááá±áá«áááºá
- á¡áááºáááááœá²á·á ááºážáá¯á¶á¡áá»áá¯ážá¡á á¬ážáá»á¬ážá "á¡ááŒáá·áºá¡á á¯á¶" áááºá¹áá±áááŸá ááœá±ážáá»ááºááá¯ááºáá±á¬á¡ááœááºáá»á¬ážá¡ááœáẠá¡áá¬ážá¡ááá¯á¡áá¬ážá¡ááá¯ááŸá¬- â{ var ?f:Int; }" (á¡ááá¯áá±á¬áẠ"{ ?f:Int }")
- ááá¯á¡áá« Enum áááºááá¯ážáá»á¬ážááẠfunction arguments á¡ááœáẠáá¯á¶áá±áááºááá¯ážáá»á¬áž ááŒá áºáá¬ááá¯ááºáááº- "function fooâ¹Tâº(option:Optionâ¹T⺠= None)"á
- "enum abstract Name(BasicType) {}" syntax ááẠ"enum" ááœáẠ"@:" ááŸá±á·áááºáááá¯á¡ááºáá±á¬á·áá«á
- á
ááá¹ááá
á¬áááºážáá±á¬ááºáá»á¬ážá¡ááœáẠá¡ááá¯á¡áá»á±á¬ááºáá¶áá«ááºáá±ážááŒááºáž-
enum á ááá¹áá Foo(Int) {
var A; // á
var B; // á
}
enum abstract Bar(String) {
var A; // "A"
var B; // "á"
} - "extern" áá±á¬á·áá»ááºá áá¬ážáá¯á¶ážááẠ"@:" ááŸá±á·áááºááᯠá¡áá¯á¶ážááŒá¯áááºáááá¯á¡ááºáá±á¬á·áá«á
- ááœá±ážáá»ááºááœáá·áºááᯠáááºááŸá¬ážááá¯ááºáááºáááááá¬áá»á¬áž ááá¯ááºážáá»á¬ážááŸáá áºááá·áº á¡áááºážááœááºáá»á¬ážááᯠáááºáá±á¬ááºááŒáá·áºááŸá¯ááẠDynamic" ááŒááºáá¡áááºážáá»á¬ážá¡ááœáẠááá¯á·ááá¯áẠá ááá¹ááá¡áá»áá¯ážá¡á á¬ážáá áºáá¯ááŒáá·áº á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯ááŸáá áºááá·áº áááŸáááá¯ááºáááºá
- áá±á¬áá±á¬áááºááœáẠá¡áááºáááááœá²á·á ááºážáá¯á¶áá»á¬ážááŸáá·áº á¡áá»áá¯ážá¡á á¬ážááá·áºáááºááá·áºáááºáá»ááºáá»á¬ážááá¯áᬠáááºááá¯ááºááá·áº á¡áá»áá¯ážá¡á á¬ážáááºážáá¯á¶á¡ááœáẠ"A & B" á¡áá¬ážá¡ááá¯ááᯠááá·áºáá¬ážáááºá ááá·áºáááºáá»ááºáá±á¬ááºážááᯠáááºááŸá¬ážááá¯ááºáá«ááŒá®á
- á¡ááœáẠ"ááŒá±áá¯á¶" ááŒá áºáááºáá»á¬ážááᯠáááºáá®ážááŒááºážááᯠ"var map:Mapâ¹Int, String⺠= [];" array áá áºáá¯ááŸáá·áºáááºáá°áááºá
- áá±áá¬ááœá²á·á ááºážáá¯á¶ááŸá¬ "haxe.ds.ReadOnlyArray" ááᯠááá·áºááœááºážáá¬ážáááºá
- ááá¯á¡áá« áááºáá¬áá±áá¬ááẠá¡áááºáá±áá¬ááœááºáá»á¬áž ááŸáááá¯ááºááẠ(â@:prefix.name function() {âŠ}â)á á¡áá¬ážáá° á¡áááá¹áá«ááºááœáá·áºááá¯áá»ááºáá»á¬áž- "#if (some.flag ... #end"á
- IDE áá»á¬ážá¡ááœáẠá¡áá¯á¶ážááŒá¯áá¬ážáá±á¬ áááºáá±á¬ááºááŸá¯áááá¯ááá¯áá±á¬á¡áá
áº
VSCode á¡ááœáẠááááºá¡áẠ. - ÐÐ±ÐœÐŸÐ²Ð»ÐµÐœÑ Ð²ÐœÐµÑМОе ПпÑÐµÐŽÐµÐ»ÐµÐœÐžÑ (extern) ÐŽÐ»Ñ Web APIs О ÐŽÐŸÐ±Ð°Ð²Ð»ÐµÐœÑ ÐŸÑÑÑÑÑÑвÑÑÑОе.
source: opennet.ru