e hatisitsoeng tokollo ea puo ea lenaneo la sistimi Mafome 1.39, e thehiloeng ke morero oa Mozilla. Puo e shebana le polokeho ea mohopolo, e fana ka taolo ea memori ea othomathike, mme e fana ka mokhoa oa ho fihlela ts'ebetso e ts'oanang e phahameng ntle le ho sebelisa moqosi oa lithōle kapa nako ea ho sebetsa.
Taolo ea memori ea othomathike ea Rust e lokolla moqapi ho tsoa manolong a pointer le ho sireletsa khahlano le mathata a bakoang ke ho qhekella ha memori ea boemo bo tlase, joalo ka phihlello ea memori e sa lefelloeng, litšupiso tsa null pointer, buffer overruns, joalo-joalo. Motsamaisi oa liphutheloana o ntse a ntlafatsoa ho aba lilaebrari, ho netefatsa ho bokelloa le ho laola litšepe ka morero. thepa, ho u lumella ho fumana lilaebrari tse hlokahalang bakeng sa lenaneo ka ho tobetsa hanngoe feela. Sebaka sa polokelo se tšehetsoa ho amohela lilaebrari crates.io.
E tsitsitse syntax e ncha ea asynchronous programming e thehiloeng ho "async" mosebetsi, async move { ... } thibela, le ".await" opareitara, e leng se etsang hore ho be bonolo ho ngola li- handlers tse sa thibeleng phallo ea taelo e kholo. Ha ho bapisoa le API e fanoeng pele bakeng sa I / O ea asynchronous, async / .await constructs e bonolo ho utloisisa, ho baloa haholo, 'me e u lumella ho kenya ts'ebetsong litšebelisano tse rarahaneng tsa asynchronous ho sebelisa mekhoa e tloaelehileng ea ho laola phallo e thehiloeng ho loops, lipolelo tse nang le maemo, le mekhelo.
Syntax ea Async-await e u lumella ho etsa mesebetsi e ka emisang ts'ebetso ea bona, ho khutlisetsa taolo khoeleng e kholo, ebe o qala ts'ebetso ho tloha moo e tlohetseng teng. Ka mohlala, khefu e joalo e hlokahala ha ho sebetsanoa le I / O, moo mosebetsi o mong o ka etsoang ha u ntse u emetse hore karolo e latelang ea data e fihle. Mesebetsi le li-blocks tse hlalositsoeng ka "async fn" le "async move" li khutlisa tšobotsi nakong e tlang, e hlalosang kemelo e chechisitsoeng ea asynchronous computation. O ka qala ka kotloloho lipalo tse chechisetsoang morao 'me oa fumana sephetho ka ho sebelisa ".await" opareitara. Ha ho ketso e etsoang kapa e reriloeng esale pele ho fihlela .await e bitsoa, e lumellang meaho e rarahaneng ea sehlaha ho etsoa ntle le ho feta holimo.
E tsitsitse "#![feature(bind_by_move_pattern_guards)]", e lumellang tšebeliso ea mefuta e nang le mofuta o tlamang "ka-tsamaiso" ho litempele le ho sebelisa litšupiso tsa mefuta ena karolong ea "haeba" ea polelo "a bapisoa". Mohlala, meaho e latelang e se e lumelletsoe:
=> {
lerotholi(lipalo);
}
_ => ha e fumanehe!(),
}
}
Pontsho e dumeletswe litšobotsi ha o hlalosa liparamente tsa ts'ebetso, ho koaloa, le lintlha tsa ts'ebetso. Litšobotsi tsa ho bokella maemo (cfg, cfg_attr) tse laolang tlhahlobo ka lint (lumella, hlokomelisa, hanela le ho hanela) le litšoaneleho tse thusang tsa mohala o moholo lia tšehetsoa.
len le (
#[cfg(windows)] selae: &[u16], // sebelisa paramente ho Windows
#[cfg(eseng(lifensetere))] selae: &[u8], // sebelisa ho OS e ngoe
) -> sebelisa {
slice.len()
}
Litemoso mabapi le mathata a bonoang ha ho hlahlojoa mokhoa oa ho alima mefuta e fapaneng (chelete ea ho alima) ho sebelisoa mokhoa oa NLL (Non-Lexical Lifetimes), fetoletsoe sehlopheng sa liphoso tse bolaeang. A re hopoleng hore mokhoa oa ho netefatsa o thehiloeng holim'a mochine o mocha oa ho ela hloko bophelo bohle ba mefuta e alimiloeng e entse hore ho khonehe ho khetholla mathata a mang a sa kang a hlokomeloa ke khoutu ea khale ea ho netefatsa. Kaha phoso e hlahisoang bakeng sa licheke tse joalo e ka ama ho lumellana le khoutu e neng e sebetsa pele, litemoso li ile tsa ntšoa qalong ho fapana le liphoso. Litemoso li se li nkeloe sebaka ke liphoso ha li sebetsa ka mokhoa oa Rust 2018. Khatisong e latelang, tlhahiso ea phoso e tla boela e kenngoe tšebetsong ka mokhoa oa Rust 2015, e leng qetellong e tla tlosa mochine oa khale oa ho alima;
Sebopeho sa "const", se khethollang monyetla oa ho sebelisa moelelong ofe kapa ofe ho e-na le li-constants, se sebelisetsoa mesebetsi Vec::new, String::new, LinkedList::new, str::len, [T]::len , str::joaloka_byte,
abs, wrapping_abs le overflowing_abs;
Karolo e ncha ea API e fetiselitsoe sehlopheng se tsitsitseng, ho kenyelletsa le mekhoa e tsitsitseng
Pin::ka har'a_hare, Instant::checked_nako_ho tloha le Hang-hang::saturating_duration_ho tloha;
Mookameli oa sephutheloana sa thepa hona joale o na le bokhoni ba ho sebelisa ".toml" katoloso bakeng sa lifaele tsa tlhophiso. E ekelitse ts'ehetso ea mantlha ea ho aha laeborari e tloaelehileng ka kotloloho ho tsoa Cargo. E kentse folakha ea "--workspace", e nkelang sebaka sa "--all" e tsosang khang. Sebaka se secha se kentsoe metadata "phatlalatsa", e u lumellang hore u phatlalatse litšepiso ka ho hlakisa tag ea git le nomoro ea mofuta. Khetho e ekelitsoeng ea liteko "-Ztimings" ho hlahisa tlaleho ea HTML ea linako tsa ts'ebetso ea mekhahlelo e fapaneng ea ho bokella.
Ho rustc compiler, melaetsa ea tlhahlobo e kenyelletsa ho fokotsa mehatla ea khoutu e sa keneleng setsing. E fane ka ts'ehetso ea boemo ba boraro bakeng sa li-platform tse reriloeng
i686-e sa tsejoeng-uefi le sparc64-tse sa tsejoeng-openbsd. Boemo ba boraro bo kenyelletsa tšehetso ea mantlha, empa ntle le tlhahlobo e ikemetseng le phatlalatso ea meaho ea semmuso.