रस्ट डेव्हलपमेंट टीमला त्यांच्या भाषेची नवीन आवृत्ती जाहीर करताना आनंद होत आहे: 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() {
    let condition = true;

    जर स्थिती {
    dbg!();
    }
    }

    जेव्हा तुम्ही हा कोड चालवाल तेव्हा तुम्हाला दिसेल:
    [src/main.rs:5]

  • स्टँडर्ड लायब्ररीचे काही भाग स्थिर झाले आहेत
    • f32 आणि f64 साठी नवीन पद्धती:
      • f32::copysign
      • f64::copysign

      वास्तविक, फंक्शन्स दुसर्‍या नंबरचे चिन्ह कॉपी करतात. उदाहरण:
      fn main() {
      assert_eq!(3.5_f32.copysign(-0.42), -3.5);
      }

    • श्रेणी प्रकारांसाठी नवीन पद्धती जोडल्या
      • श्रेणी::आहे
      • RangeFrom::चा समावेश आहे
      • RangeTo::चा समावेश आहे
      • RangeInclusive::चा समावेश आहे
      • RangeToInclusive::चा समावेश आहे

      या पद्धतींद्वारे तुम्ही एखादे विशिष्ट मूल्य अनुक्रमात आहे की नाही हे सहजपणे तपासू शकता:
      fn main() {
      जर (0..=10).आहेत(&5) {
      println!("शून्य ते दहा मध्ये पाच समाविष्ट आहेत.");
      }
      }

    • तुम्ही स्थिर API ची संपूर्ण यादी शोधू शकता येथे
  • या अपडेटमध्ये, Clippy (हा एक प्रोग्राम आहे जो अनेक त्रुटींसाठी तुमचा कोड तपासतो) ड्रॉप_बाउंडसाठी नवीन चेक जोडला आहे. जेव्हा तुम्ही मर्यादा सेट करता तेव्हा ही तपासणी कार्य करते: T: ड्रॉप - सामान्यीकृत कार्यांसाठी:
    fn foo (x:T){}

    टी असणे: ड्रॉप प्रतिबंध बहुतेकदा एक चूक आहे, कारण काही प्रकार त्वरित वगळले जातात, जसे की u8. (तुम्ही याबद्दल अधिक वाचू शकता. येथे)

  • कार्गो (भाषा पॅकेज व्यवस्थापक) मध्ये बर्‍याच सुधारणा आणि निराकरणे, बदलांची संपूर्ण यादी

स्त्रोत: linux.org.ru

DDoS संरक्षण, VPS VDS सर्व्हर असलेल्या साइटसाठी विश्वसनीय होस्टिंग खरेदी करा 🔥 डीडॉस संरक्षणासह विश्वसनीय वेबसाइट होस्टिंग, व्हीपीएस (VPS) व्हीडीएस (VDS) सर्व्हर्स खरेदी करा | ProHoster