Mwepụta nke asụsụ mmemme izugbe nke Rust 1.77, nke ọrụ Mozilla hiwere, mana nke emepụtara ugbu a n'okpuru nkwado nke otu nọọrọ onwe ya na-abụghị uru Rust Foundation, ka ebipụtala. Asụsụ ahụ na-elekwasị anya na nchekwa nchekwa ma na-enye ụzọ iji nweta ọrụ dị elu na parallelism ma na-ezere iji onye na-ekpofu ihe mkpofu na oge ịgba ọsọ (oge ọ na-agba ọsọ na-ebelata ka ọ bụrụ mmalite na nhazi nke ọbá akwụkwọ ọkọlọtọ).
Ụzọ ijikwa ebe nchekwa rust na-azọpụta onye nrụpụta site na njehie mgbe ị na-emegharị ihe nrịbama ma chebe onwe ya pụọ na nsogbu ndị na-ebilite n'ihi njikwa ebe nchekwa dị ala, dị ka ịnweta ebe nchekwa mgbe a tọhapụrụ ya, iwepụ pointers null, buffer overruns, wdg. Iji kesaa ọba akwụkwọ, nye ihe na-ewuli elu ma jikwaa ịdabere, ọrụ ahụ na-emepụta onye njikwa ngwugwu Cargo. A na-akwado ebe nchekwa crates.io maka ọba akwụkwọ nnabata.
A na-enye nchekwa nchekwa na nchara n'oge a na-achịkọta site na ntụle ntụnye aka, idobe usoro nwe ihe, idobe oge ndụ ihe (scopes), na ịlele izi ezi nke ịnweta ebe nchekwa n'oge mmebe koodu. Nchara na-enyekwa nchebe pụọ na integer njupụta, na-achọ mmalite mmalite nke ụkpụrụ agbanwe agbanwe tupu eji ya, na-edozi njehie nke ọma n'ọbá akwụkwọ ọkọlọtọ, na-etinye echiche nke ntụgharị na mgbanwe na-adịghị agbanwe agbanwe na ndabara, na-enye akara static siri ike iji belata njehie ezi uche dị na ya.
Isi ihe ọhụrụ:
- Nkwado agbakwunyere maka mkpụrụedemede C-strings (c"ederede"), nke echekwara na ebe nchekwa nwere njirimara enweghị njedebe yana jikọtara ya na ụdị "CStr". A na-atụ anya na nkwado C-string ga-eme ka koodu ederede dị mfe nke na-emekọrịta ihe n'ígwé dị n'asụsụ mmemme nke na-eji eriri akwụsịghị akwụsị, ma nyekwa ohere ka a na-eme nyocha ndị dị mkpa na nhazi nchịkọta. const HELLO: & isi :: ffi :: CStr = c "Ndewo, ụwa!";
- N'ime ọrụ arụrụ arụghị ọrụ ekwuputara site na iji okwu "async fn", a na-anabata iji nlọghachi azụ, ya bụ. ọrụ ndị dị otú ahụ nwere ike ugbu a na-akpọ onwe ha. async fn fib(n: u32) -> u32 { match n {0 | 1 => 1, _ => Igbe ::pin(fib(n-1)) .echere + Igbe ::pin(fib(n-2)) .echere } }
- The offset_of! macro e guzosie ike, na-enye gị ohere ikpebi byte offset nke ubi nke ihe owuwu, enumerations, otu na tuples, ikwu na mmalite nke ụdị. Na omume, nnukwu macro nwere ike ịba uru na ọnọdụ ebe ịchọrọ ịrụ ọrụ na ọkwa nkwụsị nke ubi na-enweghị ihe atụ nke ụdị. Karịsịa, offset_of functionality dị mkpa mgbe ị na-emepụta ihe ndị dị ala dị ka ndị ọkwọ ụgbọala. jiri std:: mem; #[repr (C)] struct FieldStruct {nke mbụ: u8, nke abụọ: u16, nke atọ: u8} assert_eq!(mem:: offset_of!(FieldStruct, first), 0); assert_eq!(mem:: offset_of!(FieldStruct, nke abụọ), 2); assert_eq! (mem:: offset_of! (FieldStruct, nke atọ), 4);
- N'ime njikwa ngwugwu Cargo, na profaịlụ ntọhapụ, a na-akwado ihicha faịlụ site na nbipu data site na ndabara (strip = "debuginfo"), ọ gwụla ma agbanyere ọnọdụ debug nke ọma na profaịlụ Cargo, i.e. Ọ bụrụ na parameter debug = 0.
- A na-akwado nhọrọ "-Zthir-unsafeck=on" na ndabara, na-enye nlele na-adịghị ize ndụ maka nke Atọ (Ụdị Nnọchiteanya Ọkwa Ọkwa Dị Elu).
- Agbakwunyere nlele lint maka static_mut_refs iji gosipụta ịdọ aka ná ntị mgbe ị na-eji ntụnyere ụkpụrụ agbanwe agbanwe.
- E mejuputawo ikike iji ụdị “Si<& [T; N]>" maka ụdị "Ehi<[T]>". fn foo (data: impl n'ime >) {/* … */ } fn main() { foo(&[“hello”, “ụwa”]); }
- Onye nchịkọta ihe na-enye nhazi nke 16-byte i128 na u128 ụdị maka usoro x86.
- Atụgharịla akụkụ ọhụrụ nke API n'ụdị nke kwụsiri ike, gụnyere ụzọ na mmejuputa omume nke ejiri mesie ike:
- nhazi :: nke ọ bụla_ref
- array:: onye ọ bụla_mut
- isi :: net
- f32 :: okirikiri_ndụ_ọbụna
- f64 :: okirikiri_ndụ_ọbụna
- mem:: offset_nke!
- ibe:: nke mbụ
- iberi :: first_chunk_mut
- iberi :: split_first_chunk
- iberi :: split_first_chunk_mut
- ibe:: ikpeazụ_chunk
- iberi :: last_chunk_mut
- iberi :: split_last_chunk
- iberi :: split_last_chunk_mut
- iberi:: nkenke_site
- iberi :: chunk_by_mut
- Agba:: map
- Faịlụ:: mepụta_ọhụrụ
- Mutex:: nsi doro anya
- RwLock :: nsi doro anya
- Edebere ọkwa nkwado nke atọ maka aarch64-unknown-illumos, hexagon-unknown-none-elf, riscv32imafc-esp-espidf na riscv32im-risc0-zkvm-elf nyiwe. Ọkwa nke atọ gụnyere nkwado bụ isi, mana na-enweghị nnwale akpaaka, ụlọ ọrụ na-ebipụta akwụkwọ, ma ọ bụ lelee ma enwere ike iwu koodu ahụ.
isi: opennet.ru
