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

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

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

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

  • Macros သည် ဒြပ်စင်များ၏ အပိုင်းအစများကို စရိုက်များ (စရိုက်)၊ အကောင်အထည်ဖော်မှုများ (impl) သို့မဟုတ် ပြင်ပလုပ်ကွက်များအဖြစ် ပြောင်းလဲရန် စွမ်းဆောင်နိုင်မှုကို ပေးသည်။ ဥပမာအားဖြင့်:

    မက်ခရို_စည်းမျဉ်းများ။ mac_trait {
    ($i:item) => {
    စရိုက် T { $i }
    }
    }
    mac_trait။ {
    fn foo() {}
    }

    မျိုးဆက်ဆီသို့ ဦးတည်လိမ့်မည်-

    စရိုက် T {
    fn foo() {}
    }

  • ရှေးရိုးစွဲများ၊ ကိုးကားမှုများနှင့် ဒွိစစ်ဆင်ရေးများ၏ အမျိုးအစားကို ပိုမိုကောင်းမွန်စွာ ထောက်လှမ်းခြင်း။
    ဥပမာအားဖြင့်၊ ယခင်က error ဖြစ်စေခဲ့သော အောက်ပါကုဒ်သည် ယခု compile လုပ်နိုင်တော့မည် (ယခု Rust သည် 0.0 နှင့် &0.0 သည် အမျိုးအစား f32 ဖြစ်ရမည် ဖြစ်ကြောင်း မှန်ကန်စွာ ဆုံးဖြတ်သည်)။

    n: f32 = 0.0 + &0.0;

  • ပေါင်းစည်းမှုစမ်းသပ်မှုများတည်ဆောက်သောအခါတွင် သတ်မှတ်ပေးထားသည့် ဝန်းကျင်ပြောင်းလဲနိုင်သော CARGO_BIN_EXE_{name} ကို Cargo သို့ ပေါင်းထည့်လိုက်ပြီး၊ ၎င်းသည် ပက်ကေ့ဂျ်၏ “[[bin]]” ကဏ္ဍတွင် သတ်မှတ်ထားသော လုပ်ဆောင်နိုင်သောဖိုင်ဆီသို့ လမ်းကြောင်းအပြည့်အစုံကို ဆုံးဖြတ်နိုင်စေမည်ဖြစ်သည်။
  • အကယ်၍ ထုတ်ပြန်ချက်များသည် "#[cfg()]" ကဲ့သို့သော အင်္ဂါရပ်များကို အသုံးပြုရန် ခွင့်ပြုထားသည်။
  • စာကြည့်တိုက်သည် မော်ဂျူးတစ်ခုကို မတင်သွင်းဘဲ ကိန်းပြည့်နှင့် အပိုင်းကိန်းအမျိုးအစားများအတွက် ဆက်စပ်ကိန်းသေများကို တိုက်ရိုက်အသုံးပြုရန် စွမ်းရည်ကို ပံ့ပိုးပေးပါသည်။ ဥပမာအားဖြင့်၊ သင်သည် “use std::u32” နှင့် “use std::f32” ကို ဦးစွာမသတ်မှတ်ဘဲ u32::MAX သို့မဟုတ် f32::NAN ကို ချက်ချင်းရေးနိုင်သည်။
  • မော်ဂျူးအသစ် ထပ်ထည့်ထားပါတယ်။ မူလဖြစ်သောMacro ရေးရန် လိုအပ်သည့်အခါ ဥပမာ Rust primitive အမျိုးအစားများကို ပြန်လည်တင်ပို့ပြီး အမျိုးအစားများကို မဝှက်ထားကြောင်း သေချာပါစေ။
  • APIs ၏ အပိုင်းအသစ်ကို တည်ငြိမ်အောင်ပြုလုပ်ခြင်းအပါအဝင် တည်ငြိမ်သောအမျိုးအစားသို့ လွှဲပြောင်းထားပါသည်။

    ပြီးသည်နှင့်::is_completed၊
    f32::LOG10_2၊
    f32::LOG2_10၊
    f64::LOG10_2၊
    f64::LOG2_10 နှင့်
    iter::တစ်ကြိမ်_ဖြင့်။

source: opennet.ru

မှတ်ချက် Add