रस्ट डेव्हलपमेंट टीमला त्यांच्या भाषेची नवीन आवृत्ती जाहीर करताना आनंद होत आहे: 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 ची संपूर्ण यादी शोधू शकता येथे
- f32 आणि f64 साठी नवीन पद्धती:
- या अपडेटमध्ये, Clippy (हा एक प्रोग्राम आहे जो अनेक त्रुटींसाठी तुमचा कोड तपासतो) ड्रॉप_बाउंडसाठी नवीन चेक जोडला आहे. जेव्हा तुम्ही मर्यादा सेट करता तेव्हा ही तपासणी कार्य करते: T: ड्रॉप - सामान्यीकृत कार्यांसाठी:
fn foo (x:T){}टी असणे: ड्रॉप प्रतिबंध बहुतेकदा एक चूक आहे, कारण काही प्रकार त्वरित वगळले जातात, जसे की u8. (तुम्ही याबद्दल अधिक वाचू शकता. येथे)
- कार्गो (भाषा पॅकेज व्यवस्थापक) मध्ये बर्याच सुधारणा आणि निराकरणे, बदलांची संपूर्ण यादी
स्त्रोत: linux.org.ru
