ΠΠ·ΠΈΠΊΡΡ Π΅
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡΡΡ Π½Π° Haxe Π΅ Π±Π»ΠΈΠ·ΡΠΊ Π΄ΠΎ ECMAScript ΠΈ
ΠΊΠ»Π°Ρ Π’Π΅ΡΡ {
ΡΡΠ°ΡΠΈΡΠ½Π° ΡΡΠ½ΠΊΡΠΈΡ main() {
var Ρ
ΠΎΡΠ° = [
"ΠΠ»ΠΈΠ·Π°Π±Π΅Ρ" => "ΠΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅",
"ΠΠΆΠΎΠ΅Π»" => "ΠΠΈΠ·Π°ΠΉΠ½"
];
Π·Π° (ΠΈΠΌΠ΅ Π² people.keys()) {
var job = Ρ
ΠΎΡΠ°[ΠΈΠΌΠ΅];
trace('$name ΡΠΈ ΠΈΠ·ΠΊΠ°ΡΠ²Π° $ΡΠ°Π±ΠΎΡΠ°ΡΠ°!');
}
}
}
ΠΡΠ½ΠΎΠ²Π½Π°ΡΠ°
- ΠΠΎΠ² ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π·Π° ΡΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΡΠΈΠΏ ΡΡΠ½ΠΊΡΠΈΡ "(ΠΈΠΌΠ΅:ΠΠΈΠ·, Π²ΡΠ·ΡΠ°ΡΡ:Int)->Bool" ΠΈΠ»ΠΈ "(String, Int)->Bool" Π²ΠΌΠ΅ΡΡΠΎ "String->Int->Bool".
- Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡΡΡ Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° ΡΡΡ ΡΡΡΠ΅Π»ΠΊΠ° Π΅ "(a, b) -> a + b" Π²ΠΌΠ΅ΡΡΠΎ "ΡΡΠ½ΠΊΡΠΈΡ (a, b) Π²ΡΡΡΠ° a + b".
- ΠΠ°ΡΠΈΡΠ° ΡΡΠ΅ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π½ΡΠ»Π΅Π²ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ (Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π½Π° ΡΡΠ½ΠΊΡΠΈΡ, Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π° ΠΏΠΎ ΠΈΠ·Π±ΠΎΡ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΏΠΎΠ»Π΅ΡΠ°, ΠΊΠ»Π°ΡΠΎΠ²Π΅ ΠΈΠ»ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ).
- ΠΠ»ΡΡΠΎΠ²Π°ΡΠ° Π΄ΡΠΌΠ° "final" Π΅ Π·Π° ΠΏΠΎΠ»Π΅ΡΠ° Π½Π° ΠΊΠ»Π°Ρ ΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΈ. "final" ΠΌΠΎΠΆΠ΅ ΡΡΡΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ, Π·Π° Π΄Π° ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈ ΠΎΡΠΌΡΠ½Π°ΡΠ° ΠΈΠΌ ΡΡΠ΅Π· Π½Π°ΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ ΠΈ Π·Π° ΠΊΠ»Π°ΡΠΎΠ²Π΅/ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π½Π°ΡΠ»Π΅Π΄Π΅Π½ΠΈ.
-
ΠΠΎΠ΄ΠΊΡΠ΅ΠΏΠ° Unicode ΡΡΠ°Π½Π΄Π°ΡΡ Π·Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ ΡΠΈΠΏ "String" Π·Π° Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π»ΠΈ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ Ρ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° Neko. - ΠΠ³ΡΠ°Π΄Π΅Π½ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ, ΠΏΡΠ΅Π½Π°ΠΏΠΈΡΠ°Π½ ΠΎΡ Π½ΡΠ»Π°ΡΠ°, ΠΊΠΎΠΉΡΠΎ ΡΠ΅Π³Π° ΠΈΠ΄Π²Π° ΠΏΠΎΠ΄ ΠΈΠΌΠ΅ΡΠΎ
ΠΠ²Π°Π» . ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π½ΠΎΠ²ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ, ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ΡΠ΅ ΠΈ ΠΌΠ°ΠΊΡΠΎΡΠΈΡΠ΅ ΡΠ°Π±ΠΎΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π±ΡΡΠ·ΠΎ. ΠΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ. - ΠΠΎΠ²Π° ΡΠ΅Π»Π΅Π²Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ (target)
Π₯Π΅ΡΠ»ΠΈΠ½ΠΊ - Π²ΠΈΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½Π° ΡΡΠ΅Π΄Π° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ Π·Π° Haxe, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΡΠ° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ Π΄ΠΎ Π±Π°ΠΉΡ ΠΊΠΎΠ΄ Π·Π° JIT ΠΈΠ»ΠΈ C, ΠΈΠΌΠ° Π»Π΅ΡΠ½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ C, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠΈΡΡΠΎΠ²ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π½Π° Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ. - ΠΠΎΠ²Π° JVM ΡΠ΅Π» - ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π²ΠΈ Π΄Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°ΡΠ΅ jvm Π±Π°ΠΉΡ ΠΊΠΎΠ΄, ΠΊΠ°ΡΠΎ ΠΏΡΠ΅ΡΠΊΠΎΡΠΈΡΠ΅ ΡΡΡΠΏΠΊΠ°ΡΠ° Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Π½Π° Java ΠΊΠΎΠ΄, ΠΊΠ°ΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΡΠ»Π°Π³Π° "-D jvm", ΠΊΠΎΠ³Π°ΡΠΎ Π½Π°ΡΠΎΡΠ²Π°ΡΠ΅ Π² Java.
- ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° Π²Π³ΡΠ°Π΄Π΅Π½ΠΎ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π² ΡΠΎΡΠΊΠ°ΡΠ° Π½Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΈ, Π΄ΠΎΡΠΈ Π°ΠΊΠΎ Π½Π΅ ΡΠ° Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΠ°Π½ΠΈ ΠΊΠ°ΡΠΎ ΡΠ°ΠΊΠΈΠ²Π°.
- ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅
ΡΡΠ°ΡΠΈΡΠ½ΠΈ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ³Π°ΡΠΎ Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΠ°ΡΠ΅ ΡΠΈΠΏ (ΠΊΠ°ΡΠΎ "enum") Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° "@:using(path.ToExtension)". - ΠΠ±ΡΡΡΠ°ΠΊΡΠ½ΠΈΡΠ΅ ΡΠΈΠΏΠΎΠ²Π΅ Π²Π΅ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ "set" Π²Π΅ΡΡΠΈΡ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° "@:op(a.b)" Π·Π° ΠΏΡΠ΅Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΈΠ·ΡΠ°Π·ΠΈ "obj.foo = bar".
- Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡΡΡ Π½Π° ΡΠΈΠΊΡΠ»Π° "for" Π²Π΅ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΈΡΠ΅ΡΠ°ΡΠΈΡ Π½Π° ΠΊΠ»ΡΡ-ΡΡΠΎΠΉΠ½ΠΎΡΡ: "for (ΠΊΠ»ΡΡ => ΡΡΠΎΠΉΠ½ΠΎΡΡ Π² ΠΊΠΎΠ»Π΅ΠΊΡΠΈΡ) {}".
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° xml-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΌΠ°ΡΠΊΠΈΡΠ°Π½Π΅ Π² ΠΈΠ·ΡΠ°Π·ΠΈ: βvar a = βΉhi/βΊ;β. ΠΠ°ΡΠ΅Π³Π° ΡΠ°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π΅ Π΄ΠΎΡΡΡΠΏΠ½Π° ΡΠ°ΠΌΠΎ Π·Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Ρ ΠΌΠ°ΠΊΡΠΎΡΠΈ ΠΈ Π΅ Π½Π° Π΅ΡΠ°ΠΏ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½Π΅.
- Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡΡΡ Π·Π° Π½Π΅Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΈ ΠΏΠΎΠ»Π΅ΡΠ° Π² βΠΏΡΠ»Π½Π°ΡΠ°β Π½ΠΎΡΠ°ΡΠΈΡ Π½Π° Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΈ ΡΡΡΡΠΊΡΡΡΠ½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ Π΅: β{ var ?f:Int; }" (Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° Π½Π° ΠΊΡΠ°ΡΠΊΠΎΡΠΎ β{ ?f:Int }").
- Π‘ΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° Enum Π²Π΅ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π·Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈ Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ°: "ΡΡΠ½ΠΊΡΠΈΡ fooβΉTβΊ(option:OptionβΉTβΊ = None)".
- Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡΡΡ "enum abstract Name(BasicType) {}" Π²Π΅ΡΠ΅ Π½Π΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΏΡΠ΅ΡΠΈΠΊΡΠ° "@:" Π² "enum".
- ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π½ΠΎΠΌΠ΅ΡΠΈΡΠ°Π½Π΅ Π·Π° Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΈ ΠΈΠ·Π±ΡΠΎΡΠ²Π°Π½ΠΈΡ:
enum abstract Foo(Int) {
var A; // 0
var B; // 1
}
enum abstract Bar(String) {
var A; // "Π"
var B; // "Π"
} - ΠΠ»ΡΡΠΎΠ²Π°ΡΠ° Π΄ΡΠΌΠ° "extern" Π²Π΅ΡΠ΅ Π½Π΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠ΅ΡΠΈΠΊΡΠ° "@:".
- ΠΡΠ΅ΠΌΠ°Ρ Π½Π° ΠΎΠΏΡΠΈΡΡΠ° "ΡΠ΅ΡΠΈΠ²Π° Dynamic" Π·Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΏΠΎΠ»Π΅ΡΠ°ΡΠ° Π½Π° ΠΊΠ»Π°ΡΠ° ΡΡΠ΅Π· Π½ΠΈΠ·ΠΎΠ²Π΅. ΠΡΠ΅Π΄Π»Π°Π³Π° ΡΠ΅ Π·Π° Π²ΡΠ½ΡΠ½ΠΈ ΠΊΠ»Π°ΡΠΎΠ²Π΅ ΠΈΠ»ΠΈ ΡΡΠ΅Π· ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ΅Π½ ΡΠΈΠΏ.
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ βA & Bβ Π·Π° ΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΈΠΏΠΎΠ²Π΅, ΠΊΠΎΠΉΡΠΎ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π° ΡΠ°ΠΌΠΎ Π·Π° Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΈ ΡΡΡΡΠΊΡΡΡΠΈ ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ Π½Π° ΡΠΈΠΏΠ°. Π‘ΡΠ°ΡΠΈΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π½Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°Ρ.
- Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠ°Π·Π½ΠΈ Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΈ Π½Π° βΠΠ°ΡΡΠ°β Π΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΡΡΠ΅Π· ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° βvar map:MapβΉInt, StringβΊ = [];β ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° ΠΌΠ°ΡΠΈΠ².
- ΠΠΎΠ±Π°Π²Π΅Π½Π° ΡΡΡΡΠΊΡΡΡΠ° ΠΎΡ Π΄Π°Π½Π½ΠΈ "haxe.ds.ReadOnlyArray".
- ΠΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈΡΠ΅ Π²Π΅ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠΌΠ°Ρ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΎΡ ΠΈΠΌΠ΅Π½Π° (β@:prefix.name function() {β¦}β). ΠΠΎ ΡΡΡΠΈΡ Π½Π°ΡΠΈΠ½ Ρ Π΄Π΅ΡΠΈΠ½ΠΈΡΠΈΠΈΡΠ΅: β#if (some.flag ... #endβ.
- ΠΠΎΠ² ΡΠ΅ΡΠ²ΠΈΠ·Π΅Π½ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Π·Π° IDE, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π²
ΠΏΠ»ΡΠ³ΠΈΠ½ Π·Π° VSCode . - ΠΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π²ΡΠ½ΡΠ½ΠΈ Π΄Π΅ΡΠΈΠ½ΠΈΡΠΈΠΈ (extern) Π·Π° ΡΠ΅Π± API ΠΈ Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ Π»ΠΈΠΏΡΠ²Π°ΡΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru