د زنګ اتوماتیک حافظه مدیریت پراختیا کونکی د پوینټر له مینځه وړلو څخه خلاصوي او د ټیټې کچې حافظې لاسوهنې څخه رامینځته شوي ستونزو څخه ساتي ، لکه د وړیا حافظې لاسرسي ، د نول پوینټر ډیریفرنسونه ، بفر اوورونونه او داسې نور. د بسته بندۍ مدیر د کتابتونونو توزیع کولو لپاره رامینځته کیږي ، د غونډې ډاډ ترلاسه کوي او د پروژې لخوا انحصار اداره کوي.
اصلي
-
زیاته کړه د سلائسونو د برابرولو برخو لپاره د ټیمپلیټونو ملاتړ (متحرک سرې، ټوټې). پخوا، دقیقو میچونو ته اجازه ورکول کیده، مګر اوس دا ممکنه ده چې د ".." په نښه شوي ساختمانونه وکاروئ ترڅو د صف پاتې عناصر پوښښ کړي. د مثال په ډول:fn foo(لغات: &[&str]) {
د کلمو سره سمون// د صف پیل عناصر چک کوي او سترګې پټوي
عناصر یې تعقیبوي
["سلام"، "نړۍ"، "!", ..] => چاپ!("سلام نړۍ!"),// لومړی دوه عناصر "فو" او "بار" چک کوي، او پاتې نور مهم ندي
["فو", "بار", ..] => چاپول!("باز"),// هرڅه په پام کې ونیسئ، مګر وروستی عنصر باید "!" وي.
[.., “!”] => چاپول!("!!!"),// په پیل کې موږ هر څه شامل کوو پرته له وروستي عنصر، کوم چې باید "z" وي
[start@.., "z"] => println!("پیل کیږي: {:?}", پیل)// په پای کې موږ د لومړي عنصر پرته هرڅه واچوو، کوم چې باید "a" وي.
["a", end @ ..] => println!("پدې سره پای ته رسیږي: {:?}"، پای)rest => println!("{:?}", آرام),
}
} - یو نوی میکرو "میچونه!" اضافه کړل، کوم چې د ان پټ په توګه بیان او نمونه اخلي، او "ریښتیا" بیرته راګرځي که چیرې نمونه د بیان سره سمون ولري. کينډۍ کولی شي "|" عملیات وکاروي او "که".
د self.partial_cmp(نور) {
ځینې (کم) => ریښتیا،
_ => دروغ،
}میچونه!(self.partial_cmp(نور)، ځینې(لږ))
let foo = 'f';
assert!(match!(foo, 'A'..='Z' | 'a'..='z'));let bar = ځینې(4)؛
assert!(match!(bar, Some(x) که x > 2)); - د ډار پیغامونو کې ښودل شوي کله چې په غلط ډول کارول کیږي
ډولونه اختیار او پایله، اوس د لاین شمیرې د کوډ سره د لینک سره وښایئ چې ستونزه لرونکی کال یې کړی ، د دې پرځای چې په لیبکور کې د زنګ پلي کولو کوډونو لینکونو سره. د مثال په توګه، بدلون د خلاصولو لپاره زنګونه اغیزه کوي او په اختیار کې تمه لري:: هیڅ نه، یا د پایلې ډول کې د unwrap_err، expect، expect_err، او ورته میتودونو کارولو په وخت کې کریش کیږي. - د کارګو بسته مدیر د پروسیژر میکرو سره کڅوړو لپاره د "بهرني" بلاک کې د "proc_macro crate" اتوماتیک بدیل چمتو کوي. دا بدلون د "استعمال" لارښود ته اجازه ورکوي چې په کوډ کې د "extern crate proc_macro؛" مشخص کولو پرته پروسیژر میکرو باندې پلي شي. د مثال په توګه، که چیرې برنامه د "proc_macro:: TokenStream استعمال کړئ" کرښه کاروي، نو بیا به کوډ اوس کار کوي که "extern crate proc_macro؛" له هغې څخه لیرې شي.
- د معیاري کتابتون ظرفیتونه پراخ شوي دي. په دې کې:: خالي
زیاته کړه د هر T ارزښتونو لپاره ملاتړ لیږل او همغږي کول.
د کال پین::{map_unchecked, map_unchecked_mut}سپارل د "سایز" پلي کولو لپاره د ډول ارزښت بیرته ورکولو څخه.
په io::کرسر کېپلي شوي PartialEq او Eq. د "const" خاصیت د ثابتو پر ځای په هر شرایطو کې د کارولو امکان ټاکي،تطبیق شوی د ترتیب لپاره::نوی میتود. - د API یوه نوې برخه باثباته کټګورۍ ته لیږدول شوې، په شمول د ثبات لرونکي CondVar::wait_while، CondVar::wait_timeout_while،
DebugMap::key, DebugMap::value,
په لاسي ډول ډراپ:: واخله،
ptr::slice_from_raw_parts_mut او ptr::slice_from_raw_parts. - تېروتنه::تفصیل طریقه له پامه غورځول شوې ده.
- د armv7a-none-eabi او riscv64gc-unknown-linux-gnu پلیټ فارمونو لپاره د دویمې کچې ملاتړ چمتو کړی. د riscv64gc-unknown-linux-gnu پلیټ فارم لپاره د معیاري کتابتون لپاره ملاتړ چمتو شوی.
د ایپل 32-bit پلیټ فارمونهکم شوی د ملاتړ دریمې درجې پورې، کوم چې بنسټیز ملاتړ معنی لري، مګر د اتوماتیک ازموینې او د رسمي ودانیو خپرولو پرته. په ملاتړ کې ټیټوالی د دې له امله دی چې ایپل نور د 32-bit پلیټ فارمونو ملاتړ نه کوي.
سرچینه: opennet.ru