Mwepụta nke asụsụ mmemme izugbe nke Rust 1.78, 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ụ:
- Atụpụtala aha oghere aha ọhụrụ "#[diagnostic]", na-enye ụzọ isi metụta ozi mperi nke ndị mkpokọta mepụtara. Nke mbụ n'ime oghere ọhụrụ ahụ bụ àgwà "#[diagnostic :: on_unimplemented]", nke enwere ike iji hazie ozi ezighi ezi nke a na-atụba n'ọnọdụ ebe ịkwesịrị iji àgwà na-adịghị emejuputa maka ụdị ahụ. #[diagnostic ::on_unimplemented( message = "Ozi m maka `ImportantTrait<{A}>` adịghị emejuputa maka `{Self}`",label = "My Label", note = "Nrịbama 1", note = "Rịba ama 2"]] àgwà ImportantTrait {} fn use_my_trait (_: impl ImportantTrait ) {} fn isi () { use_my_trait(string:: new()); } njehie[E32]: Ozi m maka 'ImportantTrait 'anaghị emejuputa maka' eriri' —> src/main.rs:0277:32 | 12 | jiri_my_trait (Ụdọ :: ọhụrụ ()); | ———— ^^^^^^^^^^^^ Akara M | | | chọrọ site n'agbụ nke oku a webatara | = enyemaka: àgwà `ImportantTrait A naghị emejuputa ya maka `string` = ndetu: Rịba ama 18 = ndetu: Cheta 12
- Enwere ike ịbugharị ndenye ego tupu etinyere na ọrụ adịghị mma ruo mgbe ọgbọ koodu, na-enye ohere ka emee nyocha ndị a na-enweghị mkpa iwulite ọba akwụkwọ ọkọlọtọ na ọnọdụ "#[cfg(debug_assertions)]". Iji kpalite ndenye ego, o zuru ezu ugbu a iji mee ka nkwupụta nbipu maka nnwale ma ọ bụ mebie iwu koodu gị.
- Omume nke ọrụ n'ọbá akwụkwọ ọkọlọtọ nke na-emetụta nhazi nke ihe nrịbama na mpekere ugbu a bụ nke a na-ahụ anya n'oge ọsọ ma dabere na data ntinye. Ihe nrịbama ọrụ :: align_offset, nke na-agbakọ nkwụsị iji dozie pointer, na-alaghachi ugbu a iji :: MAX naanị ma ọ bụrụ na ọrụ ahụ dara. Iberibe ọrụ :: align_to na iberi :: align_to_mut abụọ, nke na-agbanwe mpekere ka ọ bụrụ ihe nnọchianya na ibe etiti etiti na mbido mmalite na njedebe, ugbu a na-eweghachi akụkụ etiti kachasị ukwuu.
- Ebufere ndị a na ngalaba kwụsiri ike:
- impl Gụọ maka &Stdin
- Kwe ka ojiji nke ndụ na-abụghị static (na-abụghị static) ndụ maka ụfọdụ std :: njehie :: Mmebi metụtara njehie.
- Impl mmejuputa ekwe ka iji ?Sized uru.
- impl Site maka io :: Njehie
- Akwụsịla ọrụ mgbochi :: ọhụrụ() ka ejiri njirimara "const" mee ihe n'ọnọdụ ọ bụla kama ịdị na-agbanwe agbanwe.
- Maka nyiwe ebumnuche x86_64-pc-windows-msvc, i686-pc-windows-msvc, x86_64-pc-windows-gnu, i686-pc-windows-gnu, x86_64-pc-windows-gnullvm na i686-pc-windows-gnullv ugbu a na-achọ ma ọ dịkarịa ala Windows 10 ụdị.
- Emejuputala ọkwa nkwado nke atọ maka ikpo okwu wasm32-wasip2, arm64ec-pc-windows-msvc, armv8r-none-eabihf na loongarch64-unknown-linux-musl platforms. Ọkwa nke atọ gụnyere nkwado bụ isi, mana na-enweghị nnwale akpaaka, na-ewu ụlọ ọrụ na-ebipụta, ma ọ bụ lelee ma enwere ike iwu koodu ahụ.
- E mejuputara ọkwa nke abụọ nke nkwado maka ikpo okwu ebumnuche Tinye wasm32-wasip1. Ọkwa nke abụọ nke nkwado gụnyere nkwa mgbakọ.
- Ikpo okwu wasm32-wasi-preview1-threads ka ahagharịrị ka ọ bụrụ wasm32-wasip1-threads.
- Agbanwela onye nchịkọta ka ọ jiri LLVM 18. Mgbe ị na-eji LLVM 18 maka x86-32 na x86-64 architectures, ABI jikọtara ya na ụdị u128 na i128 gbanwere.
- N'ime njikwa nkwekọrịta ibu ibu, ụdị 4 nke faịlụ mkpọchi (lockfile v4) edoziela.
- Ibu ibu nwere cache zuru ụwa ọnụ kwụsiri ike nwere ozi gbasara ojiji data kachasị ọhụrụ. A na-akwado cache ahụ na $CARGO_HOME/.global-cache site na iji SQLite ma na-emelite ya na-akpaghị aka iji gosipụta mgbanwe kachasị ọhụrụ na ndeksi, faịlụ crate, akwụkwọ ndekọ aha, git clone, na nlele git.
Na mgbakwunye, asụsụ mmemme Borgo na-anwa ịkọwapụta karịa asụsụ Go, mana ọ dị mgbagwoju anya karịa asụsụ Rust. Borgo na-ejikọta njirimara kachasị mma nke Go na Rust, na-eme ka adịghị ike nke asụsụ ọ bụla. Dịka ọmụmaatụ, Go dị mfe ma kwụ ọtọ, mana ọ naghị enye atụmatụ nchekwa ụdị dị elu. Asụsụ Rust na-enye ngwaọrụ maka mmemme nchekwa, mana ọ gbagwojuru anya. Marco Sampellegrini, onye odee akwụkwọ ntuziaka The Simple Haskell na onye nrụpụta sistemu mwekota Quad CI na-aga n'ihu na-arụ ọrụ a.

Borgo na-eji mpịnye static, ụdị Go-dị ka, na syntax yiri rust. Semicolon bụ nhọrọ na njedebe ahịrị na koodu Borgo. Achịkọtara koodu Borgo ka ọ bụrụ ihe nnọchianya Go nke dabara na ngwugwu Go dị adị. Edere koodu nchịkọta ihe na Rust ma kesaa ya n'okpuru ikikere ISC. jiri fmt enum NetworkState {Loading, Failed(int), Success(T),} struct Response { aha: string, duration: int, } fn main() {let res = Azịza { aha: "Ndewo ụwa", oge: 0, } ka steeti = NetworkState.Success(res) let msg = ọnọdụ egwuregwu { NetworkState.Loading => "ka na-ebufe", NetworkState.Failed(koodu) => fmt.Sprintf("Enwetara koodu njehie: %d", koodu), NetworkState.Success (res) => res.title, } fmt.Println(msg) }
isi: opennet.ru
