рднрд╛рд╖рд╛ рдЫ
Haxe рд╕рд┐рдиреНрдЯреНрдпрд╛рдХреНрд╕ ECMAScript рдХреЛ рдирдЬрд┐рдХ рдЫ рд░
рдХрдХреНрд╖рд╛ рдкрд░реАрдХреНрд╖рдг {
рд╕реНрдерд┐рд░ рдкреНрд░рдХрд╛рд░реНрдп рдореБрдЦреНрдп() {
var рдорд╛рдирд┐рд╕рд╣рд░реВ = [
"рдПрд▓рд┐рдЬрд╛рдмреЗрде" => "рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ",
"рдЬреЛрдПрд▓" => "рдбрд┐рдЬрд╛рдЗрди"
];
(people.keys рдорд╛ рдирд╛рдо ()) {
var рдХрд╛рдо = рдорд╛рдирд┐рд╕рд╣рд░реВ [рдирд╛рдо];
рдЯреНрд░реЗрд╕('$рдирд╛рдорд▓реЗ $рдЬрдм рдЬреАрд╡рд┐рдХреЛрдкрд╛рд░реНрдЬрди рдЧрд░реНрдЫ!');
}
}
}
рдореБрдЦреНрдп
- "String->Int->Bool" рдХреЛ рд╕рдЯреНрдЯрд╛ "(рдирд╛рдо:рд╕реНрдЯреНрд░рд┐рдЩ, рдЙрдореЗрд░:Int)->Bool" рд╡рд╛ "(String, Int)->Bool" рдкреНрд░рдХрд╛рд░реНрдп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдирдпрд╛рдБ рд╕рд┐рдиреНрдЯреНрдпрд╛рдХреНрд╕ред
- рдПрд░реЛ рдкреНрд░рдХрд╛рд░реНрдп рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ "(a, b) -> a + b" рдХреЛ рд╕рдЯреНрдЯрд╛ "function(a, b) рд░рд┐рдЯрд░реНрди a + b" рд╣реЛред
- рд╢реВрдиреНрдп рдорд╛рдирд╣рд░реВрдХреЛ рдкреНрд░рдпреЛрдЧрд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╡рд┐рд░реБрджреНрдз рд╕реБрд░рдХреНрд╖рд╛ (рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд╕реБрд╡рд┐рдзрд╛, рдирд┐рд╢реНрдЪрд┐рдд рдХреНрд╖реЗрддреНрд░рд╣рд░реВ, рд╡рд░реНрдЧрд╣рд░реВ рд╡рд╛ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдкрдорд╛ рд╕рдХреНрд╖рдо)ред
- "рдЕрдиреНрддрд┐рдо" рдХреБрдЮреНрдЬреА рд╢рдмреНрдж рд╡рд░реНрдЧ рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рд░ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╕реНрдерд╛рдиреАрдп рдЪрд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╣реЛред "рдЕрдиреНрддрд┐рдо" рд▓рд╛рдИ рдЗрдирд╣реЗрд░рд┐рдЯреЗрдиреНрд╕рджреНрд╡рд╛рд░рд╛ рдУрднрд░рд░рд╛рдЗрдб рд╣реБрдирдмрд╛рдЯ рд░реЛрдХреНрди рд░ рдЗрдирд╣реЗрд░рд┐рдЯ рдЧрд░реНрди рдирд╕рдХрд┐рдиреЗ рд╡рд░реНрдЧ/рдЗрдиреНрдЯрд░рдлреЗрд╕рд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдХрд╛рд░реНрдпрд╣рд░реВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрди рдкрдирд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред
-
рд╕рдорд░реНрдерди рдиреЗрдХреЛ рдмрд╛рд╣реЗрдХ рд╕рдмреИ рд╕рдВрдХрд▓рди рд▓рдХреНрд╖реНрдпрд╣рд░реВрдорд╛ рдЖрдзрд╛рд░ рдкреНрд░рдХрд╛рд░ "рд╕реНрдЯреНрд░рд┐рдЩ" рдХреЛ рд▓рд╛рдЧрд┐ рдпреБрдирд┐рдХреЛрдб рдорд╛рдирдХред - рдмрд┐рд▓реНрдЯ-рдЗрди рджреЛрднрд╛рд╖реЗ рд╕реНрдХреНрд░реНрдпрд╛рдЪрдмрд╛рдЯ рдкреБрди: рд▓реЗрдЦрд┐рдПрдХреЛ, рдЬреБрди рдЕрдм рдирд╛рдо рдЕрдиреНрддрд░реНрдЧрдд рдЖрдЙрдБрдЫ
рдЗрднрд▓ ред рдирдпрд╛рдБ рдЕрдиреБрд╡рд╛рджрдХрд▓рд╛рдИ рдзрдиреНрдпрд╡рд╛рдж, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░ рдореНрдпрд╛рдХреНрд░реЛрд╣рд░реВ рдзреЗрд░реИ рдЫрд┐рдЯреЛ рдЪрд▓реНрдЫрдиреНред рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдбрд┐рдмрдЧрд┐рдЩ рдореЛрдб рд╕рдорд░реНрдерд┐рдд рдЫред - рд╕рдВрдХрд▓рдирдХрд╛ рд▓рд╛рдЧрд┐ рдирдпрд╛рдБ рд▓рдХреНрд╖реНрдп рдкреНрд░рдгрд╛рд▓реА (рд▓рдХреНрд╖реНрдп)
рд╣реНрдпрд╛рд╕рд▓рд┐рдЩреНрдХ - Haxe рдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рд╢реЗрд╖ рд░реВрдкрдорд╛ рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХреЛ рдЙрдЪреНрдЪ-рдкреНрд░рджрд░реНрд╢рди рд░рдирдЯрд╛рдЗрдо, JIT рд╡рд╛ C рдХреЛ рд▓рд╛рдЧрд┐ рдмрд╛рдЗрдЯрдХреЛрдбрдорд╛ рд╕рдВрдХрд▓рдирд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрдиреЗ, C рд╕рдБрдЧ рд╕рдЬрд┐рд▓реЛ рдПрдХреАрдХрд░рдг, рд╕рд╛рдереИ рдирд┐рдореНрди-рд╕реНрддрд░ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░рд╣рд░реВ рд░ рд╕реВрдЪрдХрд╣рд░реВрдорд╛ рдкрд╣реБрдБрдЪ рдЫред - рдирдпрд╛рдБ JVM рд▓рдХреНрд╖реНрдп - рдЬрд╛рднрд╛рдорд╛ рд▓рдХреНрд╖рд┐рдд рдЧрд░реНрджрд╛ "-D jvm" рдЭрдгреНрдбрд╛ рдердкреЗрд░ рдЬрд╛рднрд╛ рдХреЛрдб рд╕рдВрдХрд▓рди рдЪрд░рдг рдЫреЛрдбреЗрд░ jvm рдмрд╛рдЗрдЯрдХреЛрдб рдЙрддреНрдкрдиреНрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред
- рдХрд╛рд░реНрдпрд╣рд░реВ рд╡рд╛ рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░рд╣рд░реВрд▓рд╛рдИ рдХрд▓ рдЧрд░реНрдиреЗ рдмрд┐рдиреНрджреБрдорд╛ рдЗрдирд▓рд╛рдЗрди-рдбрд┐рдкреНрд▓реЛрдЗ рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛, рдпрджрд┐ рддрд┐рдиреАрд╣рд░реВ рддреНрдпрд╕реНрддрд╛ рд░реВрдкрдорд╛ рдШреЛрд╖рд┐рдд рдирдЧрд░рд┐рдПрдХрд╛ рдЫрдиреНред
- рд╕рдорд╛рд╡реЗрд╢реА рд╕рдореНрднрд╛рд╡рдирд╛
рд╕реНрдерд┐рд░ рд╡рд┐рд╕реНрддрд╛рд░ "@:using(path.ToExtension)" рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкреНрд░рдХрд╛рд░ (рдЬрд╕реНрддреИ "enum") рдШреЛрд╖рдгрд╛ рдЧрд░реНрджрд╛ред - рд╕рд╛рд░ рдкреНрд░рдХрд╛рд░рд╣рд░реВрд▓реЗ рдЕрдм "obj.foo = bar" рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд╣рд░реВ рдкреБрди: рд▓реЛрдб рдЧрд░реНрди "@:op(ab)" рдЕрдкрд░реЗрдЯрд░рдХреЛ "рд╕реЗрдЯ" рд╕рдВрд╕реНрдХрд░рдгрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫред
- "рдХрд╛ рд▓рд╛рдЧрд┐" рд▓реБрдк рд╕рд┐рдиреНрдЯреНрдпрд╛рдХреНрд╕рд▓реЗ рдЕрдм рдХреБрдЮреНрдЬреА-рдорд╛рди рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ: "рдХрд╛ рд▓рд╛рдЧрд┐ (рдХреБрдЮреНрдЬреА => рд╕рдЩреНрдХрд▓рдирдорд╛ рдорд╛рди) {}"ред
- рдПрдХреНрд╕рдПрдордПрд▓-рдЬрд╕реНрддреЛ рдорд╛рд░реНрдХрдЕрдк рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд╣рд░реВрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди: "var a = тА╣hi/тА║;"ред рдЕрд╣рд┐рд▓реЗрдХреЛ рд▓рд╛рдЧрд┐, рдпреЛ рд╕реБрд╡рд┐рдзрд╛ рдореНрдпрд╛рдХреНрд░реЛрд╕рдБрдЧ рдкрд╛рд░реНрд╕рд┐рдЩрдХреЛ рд▓рд╛рдЧрд┐ рдорд╛рддреНрд░ рдЙрдкрд▓рдмреНрдз рдЫ рд░ рдбрд┐рдЬрд╛рдЗрди рдЪрд░рдгрдорд╛ рдЫред
- рдмреЗрдирд╛рдореА рд╕рдВрд░рдЪрдирд╛ рдкреНрд░рдХрд╛рд░рд╣рд░реВрдХреЛ "рдкреВрд░реНрдг" рд╕рдЩреНрдХреЗрддрдорд╛ рд╡реИрдХрд▓реНрдкрд┐рдХ рдХреНрд╖реЗрддреНрд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╣реЛ: "{ var ?f:Int; }" (рдЫреЛрдЯреЛ "{?f:Int }" рдХреЛ рд╡рд┐рдХрд▓реНрдк)ред
- Enum рдорд╛рдирд╣рд░реВ рдЕрдм рдкреНрд░рдХрд╛рд░реНрдп рддрд░реНрдХрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдорд╛рдирд╣рд░реВ рд╣реБрди рд╕рдХреНрдЫрдиреН: "function fooтА╣TтА║(option:OptionтА╣TтА║ = None)"ред
- "enum abstract Name(BasicType) {}" рд╕рд┐рдиреНрдЯреНрдпрд╛рдХреНрд╕рд▓рд╛рдИ рдЕрдм "enum" рдорд╛ "@:" рдЙрдкрд╕рд░реНрдЧ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрдиред
- рдЕрдореВрд░реНрдд рдЧрдгрдирд╛рдХрд╛ рд▓рд╛рдЧрд┐ рд╕реНрд╡рдд: рдирдореНрдмрд░рд┐рдЩ:
enum abstract Foo(Int) {
var A; // реж
var B; // рез
}
enum abstract Bar(String) {
var A; // "рдП"
var B; // "B"
} - "рдмрд╛рд╣реНрдп" рдХреБрдЮреНрдЬреА рд╢рдмреНрджрд▓рд╛рдИ рдЕрдм "@:" рдЙрдкрд╕рд░реНрдЧрдХреЛ рдкреНрд░рдпреЛрдЧ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрдиред
- рд╡рд┐рдХрд▓реНрдк рд╣рдЯрд╛рдЗрдпреЛ"рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реНрдЯреНрд░рд┐рдЩрд╣рд░реВ рдорд╛рд░реНрдлрдд рдХрдХреНрд╖рд╛ рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рдкрд╣реБрдБрдЪ рдЧрд░реНрди рдЧрддрд┐рд╢реАрд▓"ред рдмрд╛рд╣реНрдп рдХрдХреНрд╖рд╛рд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рд╡рд╛ рд╕рд╛рд░ рдкреНрд░рдХрд╛рд░рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдорд╛рд░реНрдлрдд рдЙрдкрд▓рдмреНрдз рдЫред
- рдкреНрд░рдХрд╛рд░ рдкреНрд░рддрд┐рдЪреНрдЫреЗрджрдирдХрд╛ рд▓рд╛рдЧрд┐ "A рд░ B" рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдердкрд┐рдпреЛ, рдЬреБрди рд╣рд╛рд▓ рдЕрдЬреНрдЮрд╛рдд рд╕рдВрд░рдЪрдирд╛ рд░ рдкреНрд░рдХрд╛рд░ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рдЕрд╡рд░реЛрдзрд╣рд░реВрдорд╛ рдорд╛рддреНрд░ рд▓рд╛рдЧреВ рд╣реБрдиреНрдЫред рдкреБрд░рд╛рдиреЛ рдмрд╛рдзрд╛ рд╕рд┐рдиреНрдЯреНрдпрд╛рдХреНрд╕ рд╣рдЯрд╛рдЗрдпреЛред
- рдЦрд╛рд▓реА "рдирдХреНрд╕рд╛" рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рд╕рд┐рдиреНрдЯреНрдпрд╛рдХреНрд╕ "var map:MapтА╣Int, StringтА║ = [];" рдорд╛рд░реНрдлрдд рдЙрдкрд▓рдмреНрдз рдЫред рдПрд░реЗ рдЬрд╕реНрддреИред
- рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ "haxe.ds.ReadOnlyArray" рдердкрд┐рдпреЛред
- рдореЗрдЯрд╛рдбреЗрдЯрд╛рдорд╛ рдЕрдм рдиреЗрдорд╕реНрдкреЗрд╕ (тАЬ@:prefix.name function() {тАж}тАЭ) рд╣реБрди рд╕рдХреНрдЫред рддреНрдпрд╕реНрддреИ рдкрд░рд┐рднрд╛рд╖рд╛ рд╕рдВрдЧ: "#if (some.flag ... #end"ред
- IDEs рдХреЛ рд▓рд╛рдЧрд┐ рдирдпрд╛рдБ рд╕реЗрд╡рд╛ рдкреНрд░реЛрдЯреЛрдХрд▓ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдпреЛ
VSCode рдХреЛ рд▓рд╛рдЧреА рдкреНрд▓рдЧрдЗрди . - рд╡реЗрдм API рд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдмрд╛рд╣реНрдп рдкрд░рд┐рднрд╛рд╖рд╛рд╣рд░реВ (рдмрд╛рд╣реНрдп) рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░рд┐рдпреЛ рд░ рдЫреБрдЯреЗрдХрд╛рд╣рд░реВ рдердкрд┐рдпреЛред
рд╕реНрд░реЛрдд: opennet.ru