Chaidh foillseachadh cĂ nan prògramadh adhbhar coitcheann Rust 1.82, a chaidh a stèidheachadh le pròiseact Mozilla, ach a chaidh a leasachadh a-nis fo sgèith na buidhne neo-eisimeileach neo-phrothaideach Rust Foundation, fhoillseachadh. Tha an cĂ nan aâ cuimseachadh air sĂ bhailteachd cuimhne agus aâ toirt seachad dòighean air co-shĂŹnteachd obrach Ă rd a choileanadh fhad âs a tha e aâ seachnadh cleachdadh neach-cruinneachaidh sgudail agus Ăšine ruith (tha Ăšine ruith air a lughdachadh gu toiseach tòiseachaidh agus cumail suas an leabharlann Ă bhaisteach).
Bidh dòighean lĂ imhseachaidh cuimhne Rust aâ sĂ bhaladh an leasaiche bho mhearachdan nuair a bhios iad aâ lĂ imhseachadh chomharran agus aâ dĂŹon an aghaidh dhuilgheadasan a thig am bĂ rr mar thoradh air lĂ imhseachadh cuimhne aig ĂŹre ĂŹosal, leithid faighinn gu raon cuimhne Ă s deidh dha a bhith air a shaoradh, aâ toirt iomradh air comharran null, cus bufair, msaa. Gus leabharlannan a sgaoileadh, togail a thoirt seachad agus eisimeileachd a riaghladh, bidh am pròiseact aâ leasachadh manaidsear pacaid Cargo. Tha an stòr crates.io aâ faighinn taic airson aoigheachd a thoirt do leabharlannan.
Tha sĂ bhailteachd cuimhne air a thoirt seachad ann an Rust aig Ă m cruinneachaidh tro sgrĂšdadh iomraidh, cumail sĂšil air seilbh nithean, cumail sĂšil air beatha nithean (scopes), agus measadh dè cho ceart âs a tha ruigsinneachd cuimhne rè coileanadh còd. Bidh Rust cuideachd aâ toirt dĂŹon an aghaidh thar-shruthan iomlan, aâ feumachdainn luachan caochlaideach a thòiseachadh mus tèid an cleachdadh, aâ lĂ imhseachadh mhearachdan nas fheĂ rr san leabharlann Ă bhaisteach, aâ cur an gnĂŹomh bun-bheachd iomraidhean neo-sheasmhach agus caochladairean gu bunaiteach, aâ tabhann clò-sgrĂŹobhadh lĂ idir statach gus mearachdan loidsigeach a lughdachadh.
PrĂŹomh innleachdan:
- Chaidh an Ă ithne âinfoâ a chuir ris aâ mhanaidsear pacaid bathair gus fiosrachadh mu phasgan a thaisbeanadh san stòr.
- Chuir sinn taic ris aâ cho-chòrdadh âuse<..>â ann an âimpl Traitâ, a shònraicheas fiosrachadh mu sheòrsan falaichte. Mar eisimpleir, tha "impl Trait + use <'x, T>" a' sònrachadh nach eil ach na paramadairean "x" agus "T" ceadaichte a chleachdadh ann an seòrsa falaichte.
- Chaidh co-chòrdadh air leth a mholadh airson comharran amh a chruthachadh, aâ dol an Ă ite macros a chaidh a chleachdadh roimhe seo: chaidh aâ ghnĂŹomhaiche â&raw const exprâ a chuir na Ă ite aâ macro âaddr_of! (expr)â, agus chaidh am macro âaddr_of_mut! (expr)â a chuir na Ă ite. leis aâ ghnĂŹomhaiche â&raw mutâ expr â. struct Packed { not_aligned_field: i32, } fn main() { let p = Pacaichte { not_aligned_field: 1_82 }; // Seann dòigh air puing amh a chruthachadh let ptr = std::ptr::addr_of!(p.not_aligned_field); // Dòigh Ăšr air puing amh a chruthachadh let ptr = &raw const p.not_aligned_field; leig val = mĂŹ-shĂ bhailte { ptr.read_unaligned() }; }
- Tha e comasach a-nis gnĂŹomhan sĂ bhailte agus seasmhach a mhĂŹneachadh le beatha âstatachâ taobh a-staigh blocaichean taobh a-muigh leis aâ fheart âmĂŹ-shĂ bhailteâ (roimhe seo, cha bâ urrainn ach am feart âneo-shĂ bhailteâ a bhith aig a h-uile eileamaid ann an âtaobh a-muigh cunnartachâ)): taobh a-muigh cunnartach { pub TAU statach sĂ bhailte: f64; taigh-seinnse sĂ bhailte fn sqrt(x: f64) -> f64; taigh-seinnse neo-shĂ bhailte fn strlen(p: *const u8) -> cleachd; }
- Tha na buadhan no_mangle, link_section agus export_name, a dhâ fhaodadh giĂšlan neo-mhĂŹnichte leantainn, air am meas a-nis mĂŹ-shĂ bhailte agus feumach air bratach âmĂŹ-shĂ bhailteâ shoilleir, mar eisimpleir: #[unsafe(no_mangle)] pub fn my_global_function() { }
- Tha maidseadh pĂ train aâ leigeil le seòrsaichean falamh a bhith air an leum, leithid âenum Void {}â no structaran le raon falamh a chithear. cleachd std ::tionndaidh ::Infallible; pub fn unwrap_without_panic (x: Toradh ) -> T { leig Ok(x) = x; // Faodar âmearachdâ a leum x }
- Tha giĂšlan Ă bhaisteach aig na seòrsaichean airson Ă ireamhan puing-fleòdraidh (f32 agus f64) nuair a thathar aâ giullachd luachan NaN neo-Ă ireamhach (0.0/0.0), agus leigidh iad cuideachd gnĂŹomhachd puing-fleòdraidh a chleachdadh ann an const fn.
- Tha cuir a-steach co-chruinneachadh aâ toirt comas oparands leis aâ bhuadh âconstâ a chleachdadh gus luachan Ă ireamhach iomlan a chleachdadh gu dĂŹreach gun a bhith gan stòradh ann an clĂ r an-toiseach. const MSG: &str = "Hello, a shaoghal!\n"; mĂŹ-shĂ bhailte { core::arch::asm!("mov rdx, {LEN} // thèid an stiĂšireadh 'mov rdx, 14â˛" a chruthachadh, LEN = const MSG.len(), ⌠); }
- Tha dèiligeadh ri abairtean leis aâ bhuadh âstatachâ ceadaichte ann an co-theacsa sĂ bhailte gun a bhith aâ mĂŹneachadh bloc mĂŹ-shĂ bhailte (chan eil na gnĂŹomhaichean â&raw mutâ agus â&raw constâ aâ toirt buaidh air luach an operand agus dĂŹreach aâ cruthachadh puing dha): static mut STATIC_MUT: Seòrsa = Seòrsa :: Ăšr( ); taobh a-muigh "C" { statach EXTERN_STATIC: Seòrsa; } fn main() {let static_mut_ptr = &raw mut STATIC_MUT; let extern_static_ptr = &raw const EXTERN_STATIC; }
- Chaidh cuibhreann Ăšr den API a ghluasad chun roinn de stĂ ball, aâ toirt a-steach dòighean agus buileachadh feartan air an socrachadh:
- std :: snĂ ithlean :: Builder :: spawn_unchecked
- std :: str :: CharIndices :: offset
- std :: roghainn :: Roghainn :: is_none_or
- [T] :: air a sheòrsachadh
- [T] :: air a rèiteachadh_by
- [T] :: is_sorted_by_key
- Iterator :: air a rèiteachadh
- Iterator ::is_sorted_by
- Iterator ::is_sorted_by_key
- std :: Ă m ri teachd :: Deiseil :: into_inner
- std ::iter :: ath-aithris_n
- impl DoubleEndedIterator for Take
Source: fosgailtenet.ru
