itusilẹ ede siseto eto , ti a da nipasẹ iṣẹ akanṣe Mozilla. Ede naa dojukọ aabo iranti, pese iṣakoso iranti aifọwọyi, ati pese awọn irinṣẹ lati ṣaṣeyọri isọdọkan iṣẹ-ṣiṣe giga laisi lilo ikojọpọ idoti ati .
Iṣakoso iranti aifọwọyi ti Rust n ṣe ominira oluṣe idagbasoke lati ifọwọyi ijuboluwole ati aabo lodi si awọn iṣoro ti o dide lati ifọwọyi iranti ipele-kekere, gẹgẹbi awọn iraye si iranti ọfẹ lẹhin, awọn ifisilẹ ijuboluwole asan, awọn agbekọja buffer, ati bii bẹẹ. Oluṣakoso package ti wa ni idagbasoke lati kaakiri awọn ile-ikawe, rii daju apejọ ati ṣakoso awọn igbẹkẹle nipasẹ iṣẹ akanṣe naa. , gbigba ọ laaye lati gba awọn ile-ikawe ti o nilo fun eto naa ni titẹ kan. Ibi ipamọ jẹ atilẹyin lati gbalejo awọn ile-ikawe .
akọkọ :
- atilẹyin fun awọn awoṣe fun ibaamu awọn ẹya ara ti awọn ege (awọn ohun elo ti o ni agbara, bibẹ). Ni iṣaaju, awọn ibaamu deede ni a gba laaye, ṣugbọn nisisiyi o ṣee ṣe lati lo awọn itumọ ti samisi "..." lati bo awọn eroja ti o ku ti orun naa. Fun apere:
fn foo(awọn ọrọ: &[&str]) {
awọn ọrọ baramu {// sọwedowo awọn ni ibẹrẹ eroja ti awọn orun ati ki o foju
awọn eroja ti o tẹle wọn
["Hello", "Ayé", "!", ..] => println!("Hello Ayé!"),// sọwedowo akọkọ meji eroja "Foo" ati "Bar", ati awọn iyokù ni ko pataki
["Foo", "Pẹpẹ", ..] => println!("Baz"),// foju ohun gbogbo, ṣugbọn awọn ti o kẹhin ano gbọdọ jẹ "!".
[.., “!”] => println!(“!!!”),// ninu bibẹ ibẹrẹ a pẹlu ohun gbogbo ayafi ipin ti o kẹhin, eyiti o yẹ ki o jẹ “z”
[start @ .., "z"] => println!("bẹrẹ pẹlu: {:?}", bere),// ni opin bibẹ a fi ohun gbogbo ayafi akọkọ ano, eyi ti o yẹ ki o jẹ "a".
["a", ipari @ ..] => println!("o pari pẹlu: {:?}", ipari),isinmi => println!("{:?}", isinmi),
}
} - Ti ṣafikun Makiro tuntun “awọn ere-kere!”, eyiti o gba ikosile ati apẹrẹ kan bi titẹ sii, ti o tun pada “otitọ” ti apẹrẹ ba baamu ọrọ naa. Awoṣe le lo awọn iṣẹ-ṣiṣe "|". ati "ti o ba".
baramu self.partial_cmp(miiran) {
Diẹ ninu (Kere) => otitọ,
_ => iro,
}ibaamu!(self.partial_cmp(miiran), Diẹ ninu (Kekere))
jẹ ki foo = 'f';
assert! (awọn ibaamu! (foo, 'A'..='Z' | 'a'..='z'));jẹ ki bar = Diẹ ninu awọn (4);
assert! (awọn ere-kere! (ọgọ, Diẹ ninu awọn (x) ti x> 2)); - Ninu awọn ifiranšẹ ijaaya ti han nigba lilo ti ko tọ
Awọn oriṣi Aṣayan ati Abajade, awọn nọmba laini ti han bayi pẹlu ọna asopọ si koodu ti o ṣe ipe iṣoro, dipo awọn ọna asopọ si koodu ti n ṣe imuse ipe ni libcore. Fun apẹẹrẹ, iyipada yoo kan awọn ipe lati ṣii ati nireti lori Aṣayan :: Ko si, tabi ipadanu nigba lilo unwrap_err, reti, expect_err, ati awọn ọna ti o jọra lori iru Abajade. - Oluṣakoso package ẹru n pese iyipada aifọwọyi ti “proc_macro crate” sinu bulọọki “ita” fun awọn idii pẹlu awọn macros ilana. Iyipada yii ngbanilaaye itọsọna “lilo” lati lo si awọn macros ilana laisi nini pato “crate proc_macro;” ninu koodu naa. Fun apẹẹrẹ, ti eto naa ba lo laini “lo proc_macro :: TokenStream;”, lẹhinna koodu naa yoo wa ni iṣẹ ti o ba yọkuro kuro ninu rẹ.
- Awọn agbara ti awọn boṣewa ìkàwé ti a ti ti fẹ. Ninu iter :: ofo Firanṣẹ ati atilẹyin amuṣiṣẹpọ fun eyikeyi awọn iye T.
Awọn ipe Pin:: {map_unchecked, map_unchecked_mut} lati ni lati pada iru iye kan fun imuse “Iwọn”.
Ninu io :: Kọsọ PartialEq ati Eq. Ẹya “const” pinnu iṣeeṣe lilo ni eyikeyi ipo dipo awọn iduro, fun Layout :: titun ọna. - Apa tuntun ti API ni a ti gbe lọ si ẹka iduro, pẹlu CondVar ti o duro diduro :: duro_nigba, CondVar :: wait_timeout_while,
DebugMap :: bọtini, DebugMap :: iye,
Fi ọwọ silẹ :: mu,
ptr :: bibẹ_from_raw_parts_mut ati ptr :: bibẹ_lati_raw_parts. - Ọna ijuwe aṣiṣe:: ti ti parẹ.
- Ti pese atilẹyin ipele keji fun armv7a-none-eabi ati awọn iru ẹrọ riscv64gc-unknown-linux-gnu. Atilẹyin fun ile-ikawe boṣewa fun pẹpẹ riscv64gc-unknown-linux-gnu ti pese.
Apple 32-bit awọn iru ẹrọ titi di ipele kẹta ti atilẹyin, eyiti o tumọ atilẹyin ipilẹ, ṣugbọn laisi idanwo adaṣe ati atẹjade ti awọn ile-iṣẹ osise. Ilọkuro ni atilẹyin jẹ nitori Apple ko ṣe atilẹyin awọn iru ẹrọ 32-bit mọ.
orisun: opennet.ru
