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

Crystal 1.2 ပရိုဂရမ်းမင်းဘာသာစကားကို ထုတ်ဝေလိုက်ပါပြီ၊ ဆော့ဖ်ဝဲရေးသားသူများသည် Ruby ဘာသာစကားတွင် ဖွံ့ဖြိုးတိုးတက်မှုအဆင်ပြေစေရန် C language ၏ မြင့်မားသော အသုံးချအင်္ဂါရပ်များနှင့် ပေါင်းစပ်ရန် ကြိုးစားနေကြပါသည်။ Crystal ၏ syntax သည် Ruby နှင့် နီးစပ်သော်လည်း အချို့သော Ruby ပရိုဂရမ်များသည် ပြုပြင်မွမ်းမံခြင်းမရှိဘဲ လုပ်ဆောင်နေသော်လည်း၊ compiler ကုဒ်ကို Crystal ဖြင့်ရေးသားထားပြီး Apache 2.0 လိုင်စင်အောက်တွင် ဖြန့်ဝေထားသည်။

ဘာသာစကားသည် ကုဒ်ရှိ ကိန်းရှင်အမျိုးအစားများနှင့် နည်းလမ်းအငြင်းအခုံများကို ပြတ်သားစွာသတ်မှတ်ရန်မလိုအပ်ဘဲ တည်ငြိမ်သောအမျိုးအစားစစ်ဆေးခြင်းကို အသုံးပြုသည်။ Crystal ပရိုဂရမ်များကို မက်ခရိုအကဲဖြတ်ပြီး ကုဒ်ထုတ်ပေးခြင်းဖြင့် executable files များအဖြစ် စုစည်းထားပါသည်။ Crystal ပရိုဂရမ်များတွင် C ဖြင့်ရေးသားထားသော binding များကိုချိတ်ဆက်နိုင်သည်။ ပင်မချည်မျှင်ကို ပိတ်ဆို့ခြင်းမရှိဘဲ၊ ပင်မချည်မျှင်များကို ပိတ်ဆို့ခြင်းမရှိဘဲ ပေါ့ပါးသော ချည်မျှင်ပုံစံဖြင့် "spawn" သော့ချက်စာလုံးကို အသုံးပြု၍ ကုဒ်လုပ်ဆောင်မှုကို ပြိုင်တူလုပ်ဆောင်သည်။

စံပြစာကြည့်တိုက်သည် CSV၊ YAML၊ နှင့် JSON၊ HTTP ဆာဗာများဖန်တီးရန်အတွက် အစိတ်အပိုင်းများနှင့် WebSocket ပံ့ပိုးမှုတို့အပါအဝင် ဘုံလုပ်ဆောင်ချက်များစွာကို ပံ့ပိုးပေးပါသည်။ ဖွံ့ဖြိုးတိုးတက်မှုလုပ်ငန်းစဉ်အတွင်း၊ Crystal ဘာသာစကားဖြင့် အပြန်အလှန်တုံ့ပြန်လုပ်ဆောင်မှုအတွက် ဝဘ်အင်တာဖေ့စ် (localhost:8080) ကို ထုတ်ပေးသည့် “crystal play” command ကို အသုံးပြုရန် အဆင်ပြေသည်။

အဓိကပြောင်းလဲမှုများ-

  • ယေဘုယျအတန်းတစ်ခု၏ အတန်းခွဲတစ်ခုအား ပင်မအတန်းအစားတစ်ခုသို့ ထည့်သွင်းပေးနိုင်သည်။ အတန်းအစား Foo(T); အတန်းအဆုံး Bar(T) < Foo(T); အဆုံးသတ် x = Foo x = ဘား
  • ယခု Macros သည် ကွက်ကွက်တစ်ခုရှိ တန်ဖိုးတစ်ခုကို လျစ်လျူရှုရန် အောက်ခံအမှတ်ကို သုံးနိုင်ပါပြီ။ {% for _, v, i in {1 => 2, 3 => 4, 5 => 6} %} p {{v + i}} {% end %}
  • "file_exists?" နည်းလမ်းကို မက်ခရိုသို့ ထည့်ခဲ့သည်။ ဖိုင်တစ်ခု၏တည်ရှိမှုကိုစစ်ဆေးရန်။
  • စံပြစာကြည့်တိုက်သည် 128-bit integers များကို ပံ့ပိုးပေးပါသည်။
  • Added Indexable::BitArray နှင့် Deque ကဲ့သို့သော စုစည်းမှုများအတွက် အဆင့်မြင့် လုပ်ဆောင်ချက်များကို အကောင်အထည်ဖော်ခြင်းဖြင့် Mutable(T) module။ ba = BitArray.new(10) # ba = BitArray[0000000000] ba[0] = true # ba = BitArray[1000000000] ba.rotate!(-1) # ba = BitArray[0100000000]
  • ထပ်ထည့်ထားသော XML::Node#namespace_definition method XML မှ သီးခြား namespace တစ်ခုကို ထုတ်ယူရန်။
  • IO#write_utf8 နှင့် URI.encode နည်းလမ်းများကို ရပ်တန့်ထားပြီး IO#write_string နှင့် URI.encode_path တို့ဖြင့် အစားထိုးသင့်သည်။
  • 32-bit x86 ဗိသုကာအတွက် ပံ့ပိုးမှုအား ဒုတိယအဆင့်သို့ ရွှေ့လိုက်ပါပြီ (အဆင်သင့်လုပ်ထားသော ပက်ကေ့ဂျ်များကို မထုတ်ပေးတော့ပါ)။ ARM64 ဗိသုကာအတွက် ပံ့ပိုးမှုပထမအဆင့်သို့ လွှဲပြောင်းရန် ပြင်ဆင်နေပါသည်။
  • Windows ပလပ်ဖောင်းအတွက် အပြည့်အဝပံ့ပိုးမှုသေချာစေရန် အလုပ်က ဆက်လက်လုပ်ဆောင်ပါသည်။ Windows socket များအတွက် ပံ့ပိုးမှု ထပ်ထည့်ထားသည်။
  • x86 ပရိုဆက်ဆာများနှင့် Apple M1 ချစ်ပ်ပါသော စက်ပစ္စည်းများတွင် အလုပ်လုပ်သည့် macOS အတွက် universal package တစ်ခု ထည့်သွင်းထားပါသည်။

source: opennet.ru

မှတ်ချက် Add