د زنګ د اتوماتیک حافظې مدیریت د پوائنټرونو مینځلو په وخت کې غلطۍ له مینځه وړي او د ټیټې کچې حافظې له مینځه وړلو څخه رامینځته شوي ستونزو څخه ساتي ، لکه د حافظې ساحې ته لاسرسی وروسته له دې چې خلاص شو ، د نول پوینټر ډیریفرنسونه ، بفر اوورونونه او داسې نور. د بسته بندۍ مدیر د کتابتونونو توزیع کولو لپاره رامینځته کیږي ، د غونډې ډاډ ترلاسه کوي او د پروژې لخوا انحصار اداره کوي.
اصلي
- د ډولونو لپاره پلي شوي ملاتړ
صفونه په خپله خوښه اندازه. پخوا، د ټولو عددي ارزښتونو لپاره د عمومي دندو تعریف کولو کې د ناتوانۍ له امله، معیاري کتابتون یوازې د 32 عناصرو په اندازې کې د صفونو لپاره جوړ شوی ځانګړتیا مالتړ چمتو کړی (د هرې اندازې ځانګړتیاوې په ثابت ډول تعریف شوي). د ثابت جنریک ("const generics") د فعالیت له رامینځته کیدو څخه مننه ، دا ممکنه شوه چې د هر ډول اندازې لپاره عمومي افعال تعریف کړئ ، مګر دوی لاهم د مستحکم ژبې ځانګړتیاو کې ندي شامل شوي ، که څه هم دوی په کمپیلر کې پلي شوي او دي. اوسښکیل په معیاري کتابتون کې د هر اندازې صفاتو لپاره.د مثال په توګه، په Rust 1.47 کې لاندې جوړونه به د صف محتويات چاپ کړي، که څه هم مخکې به دا د تېروتنې پایله وه:
fn main() {
اجازه راکړئ xs = [0; ۳۴] ;println!("{:?}", xs);
} - په بیړني حالتونو کې د لنډو نښو (بیکټریس) محصول چمتو کول. هغه عناصر چې په ډیری حاالتو کې د علاقې وړ ندي ، مګر محصول ګډوډ کوي او د ستونزې له لومړني لاملونو څخه پاملرنه راجلبوي ، له ټریس څخه ایستل شوي. د بشپړ ټریس بیرته راستنیدو لپاره، تاسو کولی شئ د چاپیریال متغیر "RUST_BACKTRACE=full" وکاروئ. د مثال په توګه، د کوډ لپاره
fn main() {
ورخطايي!()؛
}پخوا، ټریس په 23 مرحلو کې تولید شوی و، مګر اوس به دا کم شي
3 مرحلې چې تاسو ته اجازه درکوي سمدلاسه جوهر وپیژنئ:تار 'مین' په 'ښکاره ویره' کې ډار شوی، src/main.rs:2:5
stack backtrace:
0: std:: ډارېدل::begin_panic
په /rustc/d…d75a/library/std/src/panicking.rs:497
1: د لوبې ډګر:: اصلي
په ./src/main.rs:2
2: core::ops::function::FnOnce::call_once
په /rustc/d…d75a/library/core/src/ops/function.rs:227 - د rustc کمپیلر د کارولو جوړولو لپاره تازه شوی
LLVM 11 ( زنګکاروي LLVM لپاره د شالید په توګهکوډ تولید ). په ورته وخت کې، د زړو LLVMs سره د جوړولو وړتیا، تر 8 نسخه پورې، ساتل کیږي، مګر په ډیفالټ (پهrust-lang/llvm-project ) اوس LLVM 11 کاروي. LLVM 11 تمه کیږي چې په راتلونکو ورځو کې خپور شي. - په وینډوز پلیټ فارم کې ، د rustc کمپیلر د کنټرول جریان بشپړتیا چیکونو (کنټرول فلو ګارډ) فعالولو لپاره ملاتړ چمتو کوي ، د "-C کنټرول فلو-ګارډ" بیرغ په کارولو سره فعال شوی. په نورو پلیټ فارمونو کې دا بیرغ د اوس لپاره له پامه غورځول شوی.
- د APIs نوې برخه باثباته کټګورۍ ته لیږدول شوې، په شمول ثبات
پیژندنه::نوی_را،
سلسله::is_empty,
رینج ټول شموله::is_empty,
پایله:: as_deref,
پایله:: as_deref_mut,
Vec:: لیک،
اشاره کوونکی::offset_from,
f32::TAU او
f64::TAU. - د "const" خاصیت، کوم چې د ثابتو پر ځای په هر شرایطو کې د کارولو امکان ټاکي، په میتودونو کې کارول کیږي:
- له صفر پرته د ټولو عددونو لپاره نوی؛
- checked_add, checked_sub, checked_mul, checked_neg, checked_shl, checked_shr, saturating_add, saturating_sub او saturating_mul د ټولو عددونو لپاره؛
- is_ascii_alphabetic، is_ascii_uppercase، is_ascii_lowercase، is_ascii_alphanumeric، is_ascii_digit، is_ascii_hexdigit، is_ascii_punctuation، is_ascii_graphic، is_ascii_whitescii_contypes and is for charascii_cont8.
- د وړیاBSD لپاره
ښکیل د FreeBSD 11.4 څخه اوزار کټ (FreeBSD 10 د LLVM 11 ملاتړ نه کوي).
سرچینه: opennet.ru