زنګ 1.35

د زنګ پراختیا ټیم خوښ دی چې د دوی د ژبې نوې نسخه اعلانوي: 1.35. زنګ د پروګرام کولو ژبه ده چې تاسو ته اجازه درکوي د باور وړ او اغیزمن پروګرامونه ولیکئ.

که تاسو دمخه د رست اپ له لارې زنګ نصب کړی وي ، تاسو کولی شئ د کمانډ سره تازه کړئ:
$ rustup تازه ثبات مستحکم

په اوسمهال کې اصلي شی د بکس لپاره د تړلو ځانګړتیاو Fn، FnOnce، FnMut، پلي کول دي بکس بکس په ترتیب سره. ناامنه کارونو ته د پوائنټرونو د بندولو وړتیا اضافه کول، د dbg!() میکرو زنګ وهل اوس پرته له دلیلونو امکان لري، او معیاري کتابتون مستحکم شوی.

د جزیاتو لپاره:

  • په نوې نسخه کې موږ د بکس لپاره د Fn، FnOnce، FnMut ځانګړتیاوو پلي کول اضافه کړل بکس بکس په ترتیب سره.
    اوس دا کوډ به کار وکړي:
    fn foo(x: بکس u8>) -> Vec {
    vec![1, 2, 3, 4].into_iter().map(x).collect()
    }

    تاسو کولی شئ په مستقیم ډول د بکس څخه بند ته زنګ ووهئ :
    fn foo(x: بکس ) {
    x()
    }

  • بندونه اوس غیر خوندي fn ته اشاره کونکو ته کاسټ کیدی شي.
    اوس دا کوډ د اعتبار وړ دی:
    /// د خوندیتوب تغیرات هغه دي چې د "غیر خوندي fn" پوائنټر پاس شوي.
    unsafe fn call_unsafe_fn_ptr(f: unsafe fn()) {
    f()
    }

    fn main() {
    // خوندیتوب: هیڅ ډول تغیرات شتون نلري.
    // تړل په ثابت ډول د ناامنه شیانو د ترسره کولو مخه نیسي.
    ناامنه {
    call_unsafe_fn_ptr( || {
    dbg!();
    })؛
    }
    }

  • پرته له دلیلونو dbg!() میکرو ته زنګ وهلو وړتیا اضافه کړه.
    که تاسو دې میکرو ته یو څه څرګندونه واستوئ ، نو میکرو به خپله پایله چاپ کړي. بېلګه:
    fn main() {
    اجازه راکړئ mut x = 0;

    که dbg!(x == 1) {
    x += 1;
    }

    dbg!(x);
    }

    کله چې تاسو دا کوډ چلوئ نو تاسو به وګورئ:
    [src/main.rs:4] x == 1 = غلط
    [src/main.rs:8] x = 0

    اوس تاسو کولی شئ داسې ولیکئ:
    fn main() {
    اجازه راکړئ شرط = ریښتیا؛

    که حالت {
    dbg!();
    }
    }

    کله چې تاسو دا کوډ چلوئ نو تاسو به وګورئ:
    [src/main.rs:5]

  • د معیاري کتابتون ځینې برخې ثبات لري
    • د f32 او f64 لپاره نوي میتودونه:
      • f32::کاپي نښه
      • f64::کاپي نښه

      په حقیقت کې، افعال د بل نمبر نښه کاپي کوي. بېلګه:
      fn main() {
      assert_eq!(3.5_f32.copysign(-0.42), -3.5);
      }

    • د رینج ډولونو لپاره نوي میتودونه اضافه کړل
      • سلسله:: لري
      • RangeFrom :: لري
      • RangeTo:: لري
      • رینج په شمول:: شامل دي
      • RangeToInclusive::شامل دی

      د دې میتودونو سره تاسو کولی شئ په اسانۍ سره وګورئ چې ایا یو ټاکلی ارزښت په ترتیب کې دی:
      fn main() {
      که (0..=10) ولري (&5) {
      println!("پنځه له صفر څخه تر لسو پورې شامل دي.");
      }
      }

    • تاسو کولی شئ د ثبات لرونکي APIs بشپړ لیست ومومئ دلته
  • پدې تازه کې، کلیپي (دا یو برنامه ده چې ستاسو کوډ د ډیری غلطیو لپاره چک کوي) د drop_bounds لپاره نوی چیک اضافه کړ. دا چک هغه وخت کار کوي کله چې تاسو یو خنډ وټاکئ: T: Drop - د عمومي فعالیتونو لپاره:
    fn foo (x:T){}

    د T درلودل: د ډراپ بندیز اکثرا یوه غلطي وي، ځکه چې ځینې ډولونه سمدلاسه ایستل کیږي، لکه u8. (تاسو کولی شئ پدې اړه نور ولولئ. دلته)

  • په کارګو کې ډیری اصلاحات او اصلاحات (د ژبې بسته مدیر)، د بدلونونو بشپړ لیست

سرچینه: linux.org.ru

د DDoS محافظت ، VPS VDS سرورونو سره د سایټونو لپاره معتبر کوربه توب واخلئ 🔥 د DDoS محافظت، VPS VDS سرورونو سره د باور وړ ویب پاڼې کوربه توب واخلئ | ProHoster