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