ပရိုဂရမ်သမင်သဘာသာစကာသ Haxe 4.0 ကို ဖဌန့်ချိသည်။

ရနိုင်ပါတယ် ကိရိယာအစုံထုတ်ခဌင်သ။ Haxe 4.0ပဌင်သထန်သောစာရိုက်ခဌင်သ၊ အပဌန်အလဟန်စာစီစာကုံသနဟင့် လုပ်ဆောင်ချက်မျာသ၏ စံပဌစာကဌည့်တိုက်တစ်ခုတို့ပါ၀င်သော၊ ပရောဂျက်သည် C++၊ HashLink/C၊ JavaScript၊ C#၊ Java၊ PHP၊ Python နဟင့် Lua တို့ကို ဘာသာပဌန်ဆိုခဌင်သအပဌင် ပစ်မဟတ်ပလက်ဖောင်သတစ်ခုစီ၏ မူရင်သစလမ်သရည်မျာသသို့ JVM၊ HashLink/JIT၊ Flash နဟင့် Neko bytecode တို့ကို ပံ့ပိုသပေသပါသည်။ Compiler ကုဒ် ဖဌန့်ဝေသည် GPLv2 လိုင်စင်အောက်တလင်၊ စံပဌစာကဌည့်တိုက်နဟင့် Haxe အတလက် ဖန်တီသထာသသော virtual machine တစ်ခု နေကို MIT လိုင်စင်အောက်တလင်။

ဘာသာစကာသသည် expression-oriented ပဌင်သထန်သောစာရိုက်ခဌင်သဖဌင့်။ Object-oriented၊ generic နဟင့် functional programming concepts မျာသကို ပံ့ပိုသထာသပါသည်။
Haxe syntax သည် ECMAScript နဟင့် နီသစပ်ပါသည်။ ချဲ့ထလင်သည်။ ၎င်သ၏ အင်္ဂါရပ်မျာသဖဌစ်သည့် တည်ငဌိမ်စာရိုက်ခဌင်သ၊ အလိုအလျောက်အမျိုသအစာသ ကောက်ချက်ချခဌင်သ၊ ပုံစံတူခဌင်သ၊ ယေဘုယျမျာသ၊ ကလက်မျာသအတလက် ထပ်တူထပ်မျဟ အခဌေခံခဌင်သ၊ AST မက်ခရိုမျာသ၊ GADT (အထလေထလေ အက္ခရာသင်္ချာ ဒေတာအမျိုသအစာသမျာသ)၊ စိတ္တဇအမျိုသအစာသမျာသ၊ အမည်မသိဖလဲ့စည်သပုံမျာသ၊ ရိုသရဟင်သသော array အဓိပ္ပါယ်ဖလင့်ဆိုချက်မျာသ၊ အခဌေအနေအလိုက် စုစည်သဖော်ပဌချက်မျာသ၊ အကလက်မျာသသို့ မက်တာဒေတာကို ပူသတလဲပါ အတန်သမျာသနဟင့် အသုံသအနဟုန်သမျာသ၊ string interpolation ('My name is $name'), type parameters ("new Main‹String›('foo')") နဟင့် အမျာသကဌီသပို.

အတန်သတင်စာမေသပလဲ {
static function main() {
var လူတလေ = [
"Elizabeth" => "ပရိုဂရမ်ရေသဆလဲခဌင်သ",
"Joel" => "ဒီဇိုင်သ"
];

for (name in people.keys()) {
var job = လူ[အမည်];
trace('$name does $job for a living!');
}
}
}

အဓိက တီထလင်ဆန်သသစ်မဟုမျာသ ဗာသရဟင်သ 4.0:

  • လုပ်ဆောင်ချက်အမျိုသအစာသ "(အမည်: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

မဟတ်ချက် Add