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

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

ဘာသာစကားသည် expression-oriented ခိုင်မာသောစာရိုက်ခြင်းဖြင့်။ Object-oriented၊ generic နှင့် functional programming နည်းပညာများကို ပံ့ပိုးထားပါသည်။ Haxe syntax သည် ECMAScript နှင့် နီးစပ်ပါသည်။ ချဲ့ထွင်သည်။ ၎င်း၏ အင်္ဂါရပ်များဖြစ်သည့် တည်ငြိမ်စာရိုက်ခြင်း၊ အလိုအလျောက်အမျိုးအစား ကောက်ချက်ချခြင်း၊ ပုံစံတူခြင်း၊ ယေဘုယျများ၊ ကွက်များအတွက် ထပ်တူထပ်မျှ အခြေခံထားသော၊ AST မက်ခရို၊ GADT (အထွေထွေ အက္ခရာသင်္ချာ ဒေတာအမျိုးအစားများ)၊ စိတ္တဇအမျိုးအစားများ၊ အမည်မသိဖွဲ့စည်းပုံများ၊ ရိုးရှင်းသော array အဓိပ္ပါယ်ဖွင့်ဆိုချက်များ၊ အခြေအနေအလိုက် စုစည်းဖော်ပြချက်များ၊ အကွက်များသို့ မက်တာဒေတာကို ပူးတွဲပါ အတန်းများနှင့် စကားအသုံးအနှုန်းများ၊ string interpolation ("'ကျွန်ုပ်အမည်သည် $name'")၊ ကန့်သတ်ချက်များ ရိုက်ထည့်ပါ ('ပင်မအသစ်' ("foo")') နှင့် အများကြီးပို.

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

for (name => job in people) {
trace('$name does $job for a living!');
}
}
}

ဗားရှင်း 4.1 တွင် အင်္ဂါရပ်အသစ်များ-

  • tail recursion optimization ကို ထည့်ထားသည်။
  • ခြွင်းချက် ကိုင်တွယ်ခြင်းအတွက် ပေါင်းစည်းထားသော API အသစ်တစ်ခု ထပ်ထည့်ထားသည်။
  • "try {} catch(e) {}" ကို "try {} catch(e: haxe.Exception) {}" အတွက် အတိုကောက်အဖြစ် ခွင့်ပြုထားသည်။
  • အကဲဖြတ်စကားပြန်သို့ SSL ပံ့ပိုးမှုကို ပေါင်းထည့်ခဲ့သည်။
  • ပစ်မှတ် JVM ကို စမ်းသပ်မှုဟု မယူဆတော့ပါ။
  • Language Server Protocol အတွက်၊ "Goto Implementation" နှင့် "References ကိုရှာပါ" လုပ်ဆောင်ချက်များအတွက် ပံ့ပိုးမှုကို ထည့်သွင်းထားပါသည်။
  • ထုတ်ပေးထားသော ကုဒ်တွင် ယာယီဒေသခံ ကိန်းရှင်များ၏ အမည်ကို မြှင့်တင်ထားသည်။ မလိုအပ်တော့သော "return;" ကို ဖယ်ရှားပြီး၊ return value မပါဘဲ မြှားလုပ်ဆောင်ချက်များ။
  • အသုံးပြုခွင့် ပေါင်းစပ်မှုများ (get၊ ပုံသေ) ကို အကွက်များ (getter သာ၊ ပုံသေသတ်မှတ်မှု အပြုအမူ) တွင် ခွင့်ပြုထားသည်။
  • အကွက်များအတွက် တိုးခြင်းနှင့် လျှော့ခြင်း အော်ပရေတာများကို ခွင့်ပြုပါ။ စိတ္တဇအမျိုးအစားများ.
  • အမည်မသိ iterators များကို အသုံးပြု၍ ကွင်းဆက်များအတွက် အတွင်းပိုင်းကို ပိုမိုကောင်းမွန်စေပါသည်။
  • js- ES5 အတွက် ပိုမိုကောင်းမွန်သော StringMap အကောင်အထည်ဖော်မှု။
  • js- let variable များ၏ မျိုးဆက်ကို compiler option “-D js-es=6” တွင် ထည့်သွင်းထားပြီး၊ ES6 အတန်းများ၏ မျိုးဆက်ကို မြှင့်တင်ထားပါသည်။
  • lua- "StringIterator" ကို ပိုမိုကောင်းမွန်အောင် ပြုလုပ်ထားပြီး၊ အမှားအယွင်း ကိုင်တွယ်မှုကို မြှင့်တင်ထားသည်။
  • php- အခြေခံအမျိုးအစားများအတွက် "Std.isOfType" ကို ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ထားသည်။
  • php- ထုတ်လုပ်ထားသော array များသည် ယခုအခါတွင် မူလ interfaces “Iterator”၊ “IteratorAggregate”၊ “countable” တို့ကို အကောင်အထည်ဖော်ပါသည်။
  • cs- မက်တာဒေတာ "@:assemblyMeta" နှင့် "@:assemblyStrict" တို့ကို ထည့်ထားသည်။
  • python- အမည်မသိအရာဝတ္ထုများတွင် "__contains__" ကို ထည့်သွင်းအသုံးပြုခြင်း။
    ထုတ်လုပ်ထားသောကုဒ်တွင် ၎င်းတို့ကို အဘိဓာန်များအဖြစ် အသုံးပြုခွင့်ပေးသော "__getitem__" နှင့်။

  • jvm- အရာဝတ္ထုများကို အမည်မသိဖွဲ့စည်းပုံများအဖြစ် အသုံးပြုသည့်ကိစ္စများတွင် ရိုက်ထည့်ထားသော လုပ်ဆောင်ချက်များကို ဝင်ရောက်ခြင်းနှင့် အပိုအင်တာဖေ့စ်များထုတ်ပေးခြင်းနည်းလမ်းသစ်ကြောင့် သိသိသာသာ စွမ်းဆောင်ရည် တိုးတက်ကောင်းမွန်လာသည် (ပြောင်းလဲနေသော ပိုင်ဆိုင်မှုရှာဖွေခြင်းကို တားဆီးထားသည်)။
    ပရိုဂရမ်းမင်းဘာသာစကား Haxe 4.1 ကို ဖြန့်ချိသည်။

စံပြစာကြည့်တိုက်တွင် တိုးတက်မှုများ-

  • "Array.contains" လုပ်ဆောင်ချက်ကို ထည့်သွင်းခဲ့သည်။
  • array.keyValueIterator ("for (key => value in array)") ကို အကောင်အထည်ဖော်ပေးသော "Array.keyValueIterator")။
  • ထည့်သွင်းထားသော ကန့်သတ်ချက်အမျိုးအစား "haxe.Constraints.NotVoid"။
  • “findIndex” နှင့် “foldi” လုပ်ဆောင်ချက်များကို “Lambda” အတန်းတွင် ထည့်သွင်းထားသည်။
  • "array access" ("arr[i]" မှတဆင့်ဝင်ရောက်ခြင်း) နှင့် "haxe.ds.HashMap" အတွက် သော့တန်ဖိုးထပ်ခြင်းတို့ကို အကောင်အထည်ဖော်ခဲ့သည်။
  • jvm- "StringMap", "sys.thread.Lock", "sys.thread.Thread" ၏ JVM သီးသန့်ဗားရှင်းများကို အကောင်အထည်ဖော်ထားသည်။
  • java/jvm- "haxe.crypto" မော်ဂျူးများအတွက် "MD5", "SHA-1" နှင့် "SHA-256" တို့၏ မူလအကောင်အထည်ဖော်မှုများကို အသုံးပြုထားသည်။
  • မက်ခရို- "haxe.macro.Context.containsDisplayPosition(pos)" ကို ထည့်ထားသည်။
  • nullsafety- "တင်းကျပ်သော" မုဒ်ကို ယခုအခါ ချည်ကြိုးတစ်ခုတည်းအဖြစ် သဘောထားပြီး၊ "StrictThreaded" မုဒ်ကို ထည့်သွင်းထားသည်။
  • "Std.is" ကို "Std.isOfType" ၏မျက်နှာသာဖြင့် ရပ်တန့်ထားသည်။
  • အပိတ်များတွင် တန်ဖိုးများမပါသော ဒေသဆိုင်ရာ ကိန်းရှင်များကို အသုံးပြုသည့်အခါ သတိပေးချက်တစ်ခု ထပ်ထည့်ထားသည်။
  • js- "မရိုက်ရသေးသော __js__(ကုဒ်၊ args)" ကို ရပ်တန့်လိုက်ပြီး "js.Syntax.code(code, args)" ဖြင့် အစားထိုးထားသည်။
  • php/neko- "neko.Web" နှင့် "php.Web" ကို ရပ်ဆိုင်းထားပြီး နောက်ပိုင်းတွင် "hx4compat" စာကြည့်တိုက်သို့ ရွှေ့သွားပါမည်။

နောက်ထုတ်မှာ စီစဉ်ထားပါတယ်။:

  • Package Manager တိုးတက်မှုများ haxelib.
  • Asynchronous စနစ် API ကို အခြေခံထားသည်။ libuv.
  • လုပ်ရိုးလုပ်စဉ်များ။
  • အတန်းများမဖန်တီးဘဲ modular static functions များနှင့် variable များကိုကြေငြာခြင်း (ညစဉ်တည်ဆောက်မှုများတွင်ရရှိနိုင်ပြီးဖြစ်သည်)။

source: opennet.ru

မှတ်ချက် Add