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

ထုတ်ဝေခဲ့သည်။ စနစ်ပရိုဂရမ်းမင်းဘာသာစကား၏ 1.46 ကိုထုတ်ပြန်သည်။ သံခြေးMozilla ပရောဂျက်မှ တည်ထောင်ခဲ့သည်။ ဘာသာစကားသည် မှတ်ဉာဏ်ဘေးကင်းရေးကို အာရုံစိုက်ပြီး၊ အလိုအလျောက် မှတ်ဉာဏ်စီမံခန့်ခွဲမှုကို ပံ့ပိုးပေးကာ အမှိုက်စုဆောင်းသူအသုံးမပြုဘဲ မြင့်မားသောအလုပ်အပြိုင်ရရှိစေရန်အတွက် ကိရိယာများကို ပံ့ပိုးပေးပါသည်။ runtime.

Rust ၏ အလိုအလျောက် မှတ်ဉာဏ်စီမံခန့်ခွဲမှုသည် ညွှန်ပြချက်များကို ကိုင်တွယ်ရာတွင် အမှားအယွင်းများကို ဖယ်ရှားပေးပြီး ၎င်းကို လွတ်ပြီးသည့်နောက် မမ်မိုရီဧရိယာကို ဝင်ရောက်ခြင်း၊ အချည်းနှီးသော ညွှန်ပြမှုဆိုင်ရာ အမှားအယွင်းများ၊ ကြားခံအလွဲသုံးမှုများ စသည်တို့ကဲ့သို့သော အဆင့်နိမ့်မှတ်ဉာဏ်ကို ကိုင်တွယ်ခြင်းမှ ဖြစ်ပေါ်လာသည့် ပြဿနာများကို ကာကွယ်ပေးသည်။ စာကြည့်တိုက်များကို ဖြန့်ဝေရန်၊ စုဝေးမှုကို သေချာစေရန်နှင့် ပရောဂျက်မှ မှီခိုမှုကို စီမံခန့်ခွဲရန် ပက်ကေ့ဂျ်မန်နေဂျာကို တီထွင်နေပါသည်။ ကုန်စည်ပရိုဂရမ်အတွက် လိုအပ်သော စာကြည့်တိုက်များကို တစ်ချက်နှိပ်ရုံဖြင့် သင်ရနိုင်မည်ဖြစ်သည်။ လက်ခံထားသည့် စာကြည့်တိုက်များအတွက် သိုလှောင်မှုအား ပံ့ပိုးထားသည်။ crates.io.

အဓိက တီထွင်ဆန်းသစ်မှုများ:

  • “const fn” ဟူသောအသုံးအနှုန်းကိုအသုံးပြု၍သတ်မှတ်ထားသောလုပ်ဆောင်ချက်များ၏စွမ်းရည်များကို ချဲ့ထွင်ခဲ့ပြီး၊ ၎င်းသည် ပုံမှန်လုပ်ဆောင်ချက်များအဖြစ်သာမက ကိန်းသေများအစား မည်သည့်အကြောင်းအရာတွင်မဆို အသုံးပြုနိုင်သည်။ ဤလုပ်ဆောင်ချက်များကို runtime တွင်မဟုတ်ဘဲ compile time တွင် တွက်ချက်ထားသောကြောင့် ၎င်းတို့သည် ကိန်းသေများမှသာ ဖတ်နိုင်မှုကဲ့သို့သော ကန့်သတ်ချက်များနှင့် သက်ဆိုင်ပါသည်။

    ထုတ်ဝေမှုအသစ်သည် ထိုကဲ့သို့သောလုပ်ဆောင်ချက်များတွင် Boolean အော်ပရေတာများ (“&&” နှင့် “||”) ကိုအသုံးပြုခြင်းအား ဖယ်ရှားပြီး “if”၊ “if let”၊ “match” constructs တို့ကို အသုံးပြုခွင့်ပေးသည်၊
    "while", "while let" နှင့် "loop" တို့ကို "&[T]" ဟူသောအသုံးအနှုန်းကိုအသုံးပြု၍ အချပ်များ (အချပ်များ၊ dynamic arrays) အဖြစ်သို့ ပြောင်းလဲနိုင်စွမ်းကိုလည်း ပေးဆောင်ပါသည်။ "const fn" လုပ်ဆောင်ချက်များတွင် ဤအင်္ဂါရပ်များကို အသုံးပြုခြင်းသည် အရင်းအမြစ်-အလေးပေးသော လုပ်ဆောင်ချက်များကို စုစည်းမှုအဆင့်သို့ ရွှေ့နိုင်စေပါသည်။ ဥပမာအားဖြင့်၊ "const-sha1" ကို အကောင်အထည်ဖော်ခြင်းသည် compile time တွင် SHA-1 hash များကို တွက်ချက်နိုင်စေပြီး Rust အတွက် WinRT bindings များကို အဆ 40 နီးပါး အရှိန်မြှင့်ပေးနိုင်သည်။

  • အမှားအယွင်း မက်ဆေ့ချ်များကို ပိုမိုသိရှိစေရန်အတွက်၊ အမျိုးအစားများ မှားယွင်းစွာအသုံးပြုပါက ထိတ်လန့်စေမည့် unwrap ကဲ့သို့သော လုပ်ဆောင်ချက်များအတွက် အသုံးဝင်သည့် “#[track_caller]” ရည်ညွှန်းချက်အတွက် ပံ့ပိုးမှုကို တည်ငြိမ်စေပါသည်။ အမှားသတင်းတစ်ခုတွင် ခေါ်ဆိုသူ၏တည်နေရာကို ပရင့်ထုတ်ရန် သတ်မှတ်ထားသည့် အရည်အချင်းကို ထိတ်လန့်သော ကိုင်တွယ်သူမှ အသုံးပြုမည်ဖြစ်သည်။
  • ကိန်းသေများအစား မည်သည့်အကြောင်းအရာတွင်မဆို ၎င်းကိုအသုံးပြုရန် ဖြစ်နိုင်ခြေကို ဆုံးဖြတ်ပေးသည့် “const” attribute ကို std::mem::forget method တွင်အသုံးပြုသည်။
  • API ၏ အပိုင်းအသစ်ကို တည်ငြိမ်သော ရွေးချယ်မှုအပါအဝင် တည်ငြိမ်သောအမျိုးအစားသို့ ရွှေ့လိုက်သည်-:zip နှင့် vec::Drain::as_slice။
  • package manager Cargo တွင် ထပ်ပြောသည်။ ပက်ကေ့ဂျ်တစ်ခုကို ပြုစုရာတွင် သတ်မှတ်ထားသော ပတ်၀န်းကျင် ကိန်းရှင်အသစ်များအတွက် ပံ့ပိုးမှု- CARGO_BIN_NAME (ရလဒ် executable ဖိုင်အမည်)၊ CARGO_CRATE_NAME (ပက်ကေ့ဂျ်အမည်)၊ CARGO_PKG_LICENSE (မန်နီးဖက်စ်တွင် သတ်မှတ်ထားသော လိုင်စင်)၊ CARGO_PKG_LICENSE_FILE (လိုင်စင်ဖိုင်သို့ လမ်းကြောင်း)။

source: opennet.ru

မှတ်ချက် Add