αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž—αžΆαžŸαžΆαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Haxe 4.0

αž˜αžΆαž“ αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž€αž‰αŸ’αž…αž”αŸ‹αž§αž”αž€αžšαžŽαŸ ហអស 4.0αžŠαŸ‚αž›αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž—αžΆαžŸαžΆαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αžŠαŸ‚αž›αž˜αžΆαž“αžˆαŸ’αž˜αŸ„αŸ‡αžŠαžΌαž…αž‚αŸ’αž“αžΆαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαžœαžΆαž™αž’αž€αŸ’αžŸαžšαžαŸ’αž›αžΆαŸ†αž„ αž§αž”αž€αžšαžŽαŸαž…αž„αž€αŸ’αžšαž„αž†αŸ’αž›αž„ αž“αž·αž„αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαž“αŸƒαž˜αž»αžαž„αžΆαžšαŸ” αž‚αž˜αŸ’αžšαŸ„αž„αž“αŸαŸ‡αž‚αžΆαŸ†αž‘αŸ’αžšαž€αžΆαžšαž”αž€αž”αŸ’αžšαŸ‚αž‘αŸ…αž‡αžΆ C++, HashLink/C, JavaScript, C#, Java, PHP, Python αž“αž·αž„ Lua αž€αŸαžŠαžΌαž…αž‡αžΆαž€αžΆαžšαž…αž„αž€αŸ’αžšαž„αž‘αŸ…αž‡αžΆ JVM, HashLink/JIT, Flash αž“αž·αž„ Neko bytecode αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŸαž˜αžαŸ’αžαž—αžΆαž–αžŠαžΎαž˜αž“αŸƒαžœαŸαž‘αž·αž€αžΆαž‚αŸ„αž›αžŠαŸ…αž“αžΈαž˜αž½αž™αŸ—αŸ” αž€αžΌαžŠαž’αŸ’αž“αž€αž…αž„αž€αŸ’αžšαž„ αž…αŸ‚αž€αž…αžΆαž™β€‹αžŠαŸ„αž™ αž€αŸ’αžšαŸ„αž˜αž’αžΆαž‡αŸ’αž‰αžΆαž”αŸαžŽαŸ’αžŽ GPLv2 αž“αž·αž„αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžš αž“αž·αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αžαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Haxe αžŽαŸαž€αžΌ αž€αŸ’αžšαŸ„αž˜αž’αžΆαž‡αŸ’αž‰αžΆαž”αŸαžŽαŸ’αžŽ MIT αŸ”

αž—αžΆαžŸαžΆαž‚αžΊ αžαž˜αŸ’αžšαž„αŸ‹αž‘αž·αžŸ αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαžœαžΆαž™αž’αž€αŸ’αžŸαžšαžαŸ’αž›αžΆαŸ†αž„αŸ” αž‚αŸ„αž›αž‚αŸ†αž“αž·αžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžαž˜αŸ’αžšαž„αŸ‹αž‘αž·αžŸαžœαžαŸ’αžαž» αž‘αžΌαž‘αŸ… αž“αž·αž„αž˜αž»αžαž„αžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžΆαŸ†αž‘αŸ’αžšαŸ”
αžœαžΆαž€αŸ’αž™αžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ Haxe αž‚αžΊαž“αŸ…αž‡αž·αž ECMAScript αž“αž·αž„ αž–αž„αŸ’αžšαžΈαž€ αž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαžšαž”αžŸαŸ‹αžœαžΆαžŠαžΌαž…αž‡αžΆαž€αžΆαžšαžœαžΆαž™αž’αž€αŸ’αžŸαžšαž‹αž·αžαž·αžœαž“αŸ’αž αž€αžΆαžšαžŸαž“αŸ’αž“αž·αžŠαŸ’αž‹αžΆαž“αž”αŸ’αžšαž—αŸαž‘αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž· αž€αžΆαžšαž•αŸ’αž‚αžΌαž•αŸ’αž‚αž„αž›αŸ†αž“αžΆαŸ† αž‘αžΌαž‘αŸ… αž€αžΆαžš iterator-based αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαž„αŸ’αžœαž·αž›αž‡αž»αŸ† AST αž˜αŸ‰αžΆαž€αŸ’αžšαžΌ GADT (αž”αŸ’αžšαž—αŸαž‘αž‘αž·αž“αŸ’αž“αž“αŸαž™αž–αž·αž‡αž‚αžŽαž·αžαž‘αžΌαž‘αŸ…) αž”αŸ’αžšαž—αŸαž‘αž’αžšαžΌαž”αžΈ αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž’αž“αžΆαž˜αž·αž€ αž“αž·αž™αž˜αž“αŸαž™αž’αžΆαžšαŸαžŸαžΆαž˜αž‰αŸ’αž‰ αž€αž“αŸ’αžŸαŸ„αž˜αž…αž„αž€αŸ’αžšαž„αžαžΆαž˜αž›αž€αŸ’αžαžαžŽαŸ’αžŒ αž€αžΆαžšαž—αŸ’αž‡αžΆαž”αŸ‹αž‘αž·αž“αŸ’αž“αž“αŸαž™αž˜αŸαžαžΆαž‘αŸ…αžœαžΆαž›αŸ” αžαŸ’αž“αžΆαž€αŸ‹ αž“αž·αž„αž€αž“αŸ’αžŸαŸ„αž˜ αž€αžΆαžšαž”αž‰αŸ’αž…αžΌαž›αžαŸ’αžŸαŸ‚αž’αž€αŸ’αžŸαžš ('αžˆαŸ’αž˜αŸ„αŸ‡αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αž‚αžΊ $name'), αžœαžΆαž™αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžš ("New Mainβ€ΉStringβ€Ί('foo')") αž“αž·αž„ αž‡αžΆβ€‹αž…αŸ’αžšαžΎαž“β€‹αž‘αŸ€αž.

αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαžαŸ’αž“αžΆαž€αŸ‹ {
αž˜αž»αžαž„αžΆαžšαž‹αž·αžαž·αžœαž“αŸ’αž main() {
var αž˜αž“αž»αžŸαŸ’αžŸ = [
"Elizabeth" => "αž€αžΆαžšαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ",
"Joel" => "αžšαž…αž“αžΆ"
];

αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ (αžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž“αž»αž„ people.keys()) {
var job = αž˜αž“αž»αžŸαŸ’αžŸ[name];
trace('$name does $job for a living!');
}
}
}

αžŸαŸ†αžαžΆαž“αŸ‹ αž€αžΆαžšαž…αŸ’αž“αŸƒαž”αŸ’αžšαžŒαž·αž αž€αŸ†αžŽαŸ‚ 4.0αŸ–

  • αžœαžΆαž€αŸ’αž™αžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžαŸ’αž˜αžΈαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž”αŸ’αžšαž—αŸαž‘αž˜αž»αžαž„αžΆαžš "(αžˆαŸ’αž˜αŸ„αŸ‡αŸ– αžαŸ’αžŸαŸ‚αž’αž€αŸ’αžŸαžš αž’αžΆαž™αž»αŸ– Int)-> Bool" ឬ "(String, Int)-> Bool" αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™ "String-> Int->Bool" αŸ”
  • αžœαžΆαž€αŸ’αž™αžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž˜αž»αžαž„αžΆαžšαž–αŸ’αžšαž½αž‰αž‚αžΊ "(a, b) -> a + b" αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™ "function(a, b) return a + b" αŸ”
  • αž€αžΆαžšαž€αžΆαžšαž–αžΆαžšαž”αŸ’αžšαž†αžΆαŸ†αž„αž“αžΉαž„αž”αž‰αŸ’αž αžΆαžŠαŸ‚αž›αž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžαž˜αŸ’αž›αŸƒ Null (αž˜αž»αžαž„αžΆαžšαžŸαžΆαž€αž›αŸ’αž”αž„ αž”αžΎαž€αž‡αžΆαž‡αž˜αŸ’αžšαžΎαžŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαžΆαž›αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹ αžαŸ’αž“αžΆαž€αŸ‹ αž¬αž€αž‰αŸ’αž…αž”αŸ‹)αŸ”
  • αž–αžΆαž€αŸ’αž™αž‚αž“αŸ’αž›αžΉαŸ‡ "αž…αž»αž„αž€αŸ’αžšαŸ„αž™" αž‚αžΊαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαžΆαž›αžαŸ’αž“αžΆαž€αŸ‹ αž“αž·αž„αž’αžαŸαžšαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αžŠαŸ‚αž›αž˜αž·αž“αž’αžΆαž…αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž”αžΆαž“αŸ” "final" αž€αŸβ€‹αž’αžΆαž…β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž”αŸ’αžšαžΎβ€‹αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αž€αŸ†αžŽαžαŸ‹β€‹αž˜αž»αžαž„αžΆαžšβ€‹αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αž€αžΆαžšαž–αžΆαžšβ€‹αž–αž½αž€β€‹αžœαžΆβ€‹αž–αžΈβ€‹αž€αžΆαžšβ€‹αžαŸ’αžšαž½αžβ€‹αž–αž·αž“αž·αžαŸ’αž™β€‹αžŠαŸ„αž™β€‹αž˜αžšαžαž€ αž“αž·αž„β€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αžαŸ’αž“αžΆαž€αŸ‹/αž…αŸ†αžŽαž»αž…β€‹αž”αŸ’αžšαž‘αžΆαž€αŸ‹β€‹αžŠαŸ‚αž›β€‹αž˜αž·αž“β€‹αž’αžΆαž…β€‹αž‘αž‘αž½αž›β€‹αž”αžΆαž“β€‹αž˜αžšαžαž€αŸ”
  • αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžš αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαž™αžΌαž“αžΈαž€αžΌαžŠαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž—αŸαž‘αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“ "αžαŸ’αžŸαŸ‚αž’αž€αŸ’αžŸαžš" αž›αžΎαž‚αŸ„αž›αžŠαŸ…αž…αž„αž€αŸ’αžšαž„αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž›αžΎαž€αž›αŸ‚αž„αžαŸ‚ Neko αŸ”
  • αž’αŸ’αž“αž€αž”αž€αž”αŸ’αžšαŸ‚αžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž€αž‡αžΆαž˜αž½αž™ αžŸαžšαžŸαŸαžšαž‘αžΎαž„αžœαž·αž‰αž–αžΈαžŠαŸ†αž”αžΌαž„ αžŠαŸ‚αž›αž₯αž‘αžΌαžœαž“αŸαŸ‡αž˜αž€αž€αŸ’αžšαŸ„αž˜αžˆαŸ’αž˜αŸ„αŸ‡ αž’αžΆαž€αŸ’αžšαž€αŸ‹. αžŸαžΌαž˜αž’αžšαž‚αž»αžŽαž…αŸ†αž–αŸ„αŸ‡αž’αŸ’αž“αž€αž”αž€αž”αŸ’αžšαŸ‚αžαŸ’αž˜αžΈ αžŸαŸ’αž‚αŸ’αžšαžΈαž” αž“αž·αž„αž˜αŸ‰αžΆαž€αŸ’αžšαžΌαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΏαž“αž‡αžΆαž„αž˜αž»αž“αŸ” αžšαž”αŸ€αž”αž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸαž’αž“αŸ’αžαžšαžŸαž€αž˜αŸ’αž˜αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžΆαŸ†αž‘αŸ’αžšαŸ”
  • αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‚αŸ„αž›αžŠαŸ…αžαŸ’αž˜αžΈαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αž„αž€αŸ’αžšαž„ (αž‚αŸ„αž›αžŠαŸ…) Hashlink - αžšαž™αŸˆαž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ‚αž›αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αžαŸ’αž–αžŸαŸ‹αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž…αž“αžΆαž‘αžΎαž„αž‡αžΆαž–αž·αžŸαŸαžŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Haxe αžŠαŸ‚αž›αž‚αžΆαŸ†αž‘αŸ’αžšαž€αžΆαžšαž…αž„αž€αŸ’αžšαž„αž‘αŸ…αž‡αžΆ bytecode αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ JIT ឬ C αž˜αžΆαž“αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž™αŸ‰αžΆαž„αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž‡αžΆαž˜αž½αž™ C αž€αŸαžŠαžΌαž…αž‡αžΆαž€αžΆαžšαž…αžΌαž›αž‘αŸ…αž€αžΆαž“αŸ‹αž”αŸ’αžšαž—αŸαž‘αž›αŸαž αž“αž·αž„αž‘αŸ’αžšαž“αž·αž…αž€αž˜αŸ’αžšαž·αžαž‘αžΆαž”αŸ”
  • αž‚αŸ„αž›αžŠαŸ… JVM αžαŸ’αž˜αžΈ - αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž”αž„αŸ’αž€αžΎαž jvm bytecode αžŠαŸ„αž™αžšαŸ†αž›αž„αž‡αŸ†αž αžΆαž“αž“αŸƒαž€αžΆαžšαž…αž„αž€αŸ’αžšαž„αž€αžΌαžŠ Java αžŠαŸ„αž™αž”αž“αŸ’αžαŸ‚αž˜αž‘αž„αŸ‹ "-D jvm" αž“αŸ…αž–αŸαž›αž€αŸ†αžŽαžαŸ‹αž‚αŸ„αž›αžŠαŸ…αž“αŸ…αž€αŸ’αž“αž»αž„ Java αŸ”
  • αžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž€αŸ’αž“αž»αž„αž”αž“αŸ’αž‘αžΆαžαŸ‹αž“αŸ…αž…αŸ†αžŽαž»αž…αž“αŸƒαž€αžΆαžšαž αŸ…αž˜αž»αžαž„αžΆαžš αž¬αž’αŸ’αž“αž€αžŸαžΆαž„αžŸαž„αŸ‹ αž”αžΎαž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž–αž½αž€αžœαžΆαž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαž€αžΆαžŸαžαžΆαž‡αžΆαž˜αž»αžαž„αžΆαžšαž”αŸ‚αž”αž“αŸαŸ‡αž€αŸαžŠαŸ„αž™αŸ”
  • αž›αž‘αŸ’αž’αž—αžΆαž–αž“αŸƒαž€αžΆαžšαžŠαžΆαž€αŸ‹αž”αž‰αŸ’αž…αžΌαž› αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜αž‹αž·αžαž·αžœαž“αŸ’αž αž“αŸ…αž–αŸαž›αž”αŸ’αžšαž€αžΆαžŸαž”αŸ’αžšαž—αŸαž‘ (αžŠαžΌαž…αž‡αžΆ "enum") αžŠαŸ„αž™αž”αŸ’αžšαžΎ "@:using(path.ToExtension)"αŸ”
  • αž”αŸ’αžšαž—αŸαž‘αž’αžšαžΌαž”αžΈαž₯αž‘αžΌαžœαž“αŸαŸ‡αž‚αžΆαŸ†αž‘αŸ’αžšαž€αŸ†αžŽαŸ‚ "αž€αŸ†αžŽαžαŸ‹" αž“αŸƒαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžš "@:op(ab)" αžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αž‘αž»αž€αž€αž“αŸ’αžŸαŸ„αž˜ "obj.foo = bar" αž‘αžΎαž„αžœαž·αž‰αŸ”
  • αžœαžΆαž€αŸ’αž™αžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ "αžŸαž˜αŸ’αžšαžΆαž”αŸ‹" αž₯αž‘αžΌαžœαž“αŸαŸ‡ αž‚αžΆαŸ†αž‘αŸ’αžšβ€‹αž€αžΆαžšβ€‹αž’αŸ’αžœαžΎβ€‹αž‘αžΎαž„αžœαž·αž‰β€‹αž“αžΌαžœβ€‹αžαž˜αŸ’αž›αŸƒβ€‹αžŸαŸ„αžšαŸ– "αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ (αžŸαŸ„ => αžαž˜αŸ’αž›αŸƒβ€‹αž€αŸ’αž“αž»αž„β€‹αž€αžΆαžšβ€‹αž”αŸ’αžšαž˜αžΌαž›) {}"αŸ”
  • αž€αžΆαžšβ€‹αž‚αžΆαŸ†αž‘αŸ’αžšβ€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αž€αžΆαžšβ€‹αž”αŸ’αžšαžΎ xml-like markup αž€αŸ’αž“αž»αž„β€‹αž€αž“αŸ’αžŸαŸ„αž˜αŸ– β€œvar a = β€Ήhi/β€Ί;” αŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž–αŸαž›αž“αŸαŸ‡ αž˜αž»αžαž„αžΆαžšαž“αŸαŸ‡αž’αžΆαž…αž”αŸ’αžšαžΎαž”αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ‚αž€αžΆαžšαžœαž·αž—αžΆαž‚αž‡αžΆαž˜αž½αž™αž˜αŸ‰αžΆαž€αŸ’αžšαžΌαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡ αž αžΎαž™αžŸαŸ’αžαž·αžαž€αŸ’αž“αž»αž„αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αžšαž…αž“αžΆαŸ”
  • αžœαžΆαž€αŸ’αž™αžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαžΆαž›αžŸαŸ’αžšαŸαž…αž…αž·αžαŸ’αžαž“αŸ…αž€αŸ’αž“αž»αž„αžŸαž‰αŸ’αž‰αžΆ "αž–αŸαž‰" αž“αŸƒαž”αŸ’αžšαž—αŸαž‘αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž’αž“αžΆαž˜αž·αž€αž‚αžΊαŸ– β€œ{ var ?f:Int; }" (αž‡αžΆαž‡αž˜αŸ’αžšαžΎαžŸαž˜αž½αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ’αž›αžΈ "{?f:Int }")αŸ”
  • αž₯αž‘αžΌαžœαž“αŸαŸ‡αžαž˜αŸ’αž›αŸƒ Enum αž’αžΆαž…αž‡αžΆαžαž˜αŸ’αž›αŸƒαž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹αž˜αž»αžαž„αžΆαžšαŸ– "function fooβ€ΉTβ€Ί(αž‡αž˜αŸ’αžšαžΎαžŸαŸ–αž‡αž˜αŸ’αžšαžΎαžŸβ€ΉTβ€Ί = αž‚αŸ’αž˜αžΆαž“)"αŸ”
  • αžœαžΆαž€αŸ’αž™αžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ "enum abstract Name(BasicType) {}" αž›αŸ‚αž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαž”αž»αž–αŸ’αžœαž”αž‘ "@:" αž“αŸ…αž€αŸ’αž“αž»αž„ "enum" αž‘αŸ€αžαž αžΎαž™αŸ”
  • αž›αŸαžαžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžšαžΆαž”αŸ‹αž’αžšαžΌαž”αžΈαŸ–

    enum abstract Foo(Int) {
    var A; // ០
    var B; // ៑
    }
    enum abstract Bar(String) {
    var A; // "αž€"
    var B; // "ខ"
    }

  • αž–αžΆαž€αŸ’αž™αž‚αž“αŸ’αž›αžΉαŸ‡ "extern" αž›αŸ‚αž„αžαž˜αŸ’αžšαžΌαžœαž±αŸ’αž™αž”αŸ’αžšαžΎαž”αž»αž–αŸ’αžœαž”αž‘ "@:" αž‘αŸ€αžαž αžΎαž™αŸ”
  • αž”αžΆαž“αžŠαž€αž‡αž˜αŸ’αžšαžΎαžŸ "αž§αž”αž€αžšαžŽαŸαž’αž“αž»αžœαžαŸ’αž αžαžΆαž˜αžœαž“αŸ’αž" αžŠαžΎαž˜αŸ’αž”αžΈαž…αžΌαž›αž”αŸ’αžšαžΎαžœαžΆαž›αžαŸ’αž“αžΆαž€αŸ‹αžαžΆαž˜αžšαž™αŸˆαžαŸ’αžŸαŸ‚αž’αž€αŸ’αžŸαžšαŸ” αž˜αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ’αž“αžΆαž€αŸ‹αžαžΆαž„αž€αŸ’αžšαŸ… αž¬αžαžΆαž˜αžšαž™αŸˆαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžαžΆαž˜αž”αŸ’αžšαž—αŸαž‘αž’αžšαžΌαž”αžΈαŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αžœαžΆαž€αŸ’αž™αžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ "A & B" αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαžŸαž–αŸ’αžœαž”αŸ’αžšαž—αŸαž‘ αžŠαŸ‚αž›αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž’αž“αž»αžœαžαŸ’αžαžαŸ‚αž…αŸ†αž–αŸ„αŸ‡αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž’αž“αžΆαž˜αž·αž€ αž“αž·αž„αž€αž˜αŸ’αžšαž·αžαž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž”αŸ’αžšαž—αŸαž‘αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” αžœαžΆαž€αŸ’αž™αžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž€αž˜αŸ’αžšαž·αžαž…αžΆαžŸαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαž€αž…αŸαž‰αŸ”
  • αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαžœαžαŸ’αžαž» "αž•αŸ‚αž“αž‘αžΈ" αž‘αž‘αŸαž‚αžΊαž’αžΆαž…αžšαž€αž”αžΆαž“αžαžΆαž˜αžšαž™αŸˆαžœαžΆαž€αŸ’αž™αžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ "var map:Mapβ€ΉInt, Stringβ€Ί = [];" αžŸαŸ’αžšαžŠαŸ€αž„αž“αžΉαž„αž’αžΆαžšαŸαŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž‘αž·αž“αŸ’αž“αž“αŸαž™ "haxe.ds.ReadOnlyArray" αŸ”
  • αž₯αž‘αžΌαžœαž“αŸαŸ‡αž‘αž·αž“αŸ’αž“αž“αŸαž™αž˜αŸαžαžΆαž’αžΆαž…αž˜αžΆαž“αž…αž“αŸ’αž›αŸ„αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡ (β€œ@:αž˜αž»αžαž„αžΆαžš prefix.name() {…}”) αŸ” αžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž“αž·αž™αž˜αž“αŸαž™αŸ– "#if (some.flag... #end"αŸ”
  • αž–αž·αž’αžΈαž€αžΆαžšαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžαŸ’αž˜αžΈαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ IDEs αžŠαŸ‚αž›αž”αŸ’αžšαžΎαž€αŸ’αž“αž»αž„ αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ VSCode.
  • αž”αžΆαž“αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž“αž·αž™αž˜αž“αŸαž™αžαžΆαž„αž€αŸ’αžšαŸ… (extern) αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Web APIs αž“αž·αž„αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž”αžΆαžαŸ‹αŸ”

αž”αŸ’αžšαž—αž–: opennet.ru

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹