Itusilẹ ti ede siseto gbogboogbo-idi Rust 1.78, ti o da nipasẹ iṣẹ akanṣe Mozilla, ṣugbọn ni bayi ni idagbasoke labẹ awọn atilẹyin ti ominira ti kii ṣe èrè agbari Rust Foundation, ti ṣe atẹjade. Ede naa dojukọ aabo iranti ati pese awọn ọna lati ṣaṣeyọri isọdọkan iṣẹ giga lakoko ti o yago fun lilo ikojọpọ idoti ati akoko asiko (akoko asiko ti dinku si ipilẹṣẹ ipilẹ ati itọju ile-ikawe boṣewa).
Awọn ọna mimu iranti Rust ṣe igbala awọn olupilẹṣẹ lati awọn aṣiṣe nigbati o ba ni ifọwọyi awọn itọka ati daabobo lodi si awọn iṣoro ti o dide nitori mimu iranti ipele kekere, gẹgẹbi iraye si agbegbe iranti lẹhin ti o ti ni ominira, piparẹ awọn itọka asan, awọn ifasilẹ ifipamọ, ati bẹbẹ lọ. Lati kaakiri awọn ile-ikawe, pese awọn kikọ ati ṣakoso awọn igbẹkẹle, iṣẹ akanṣe n ṣe idagbasoke oluṣakoso package Ẹru. Ibi ipamọ crates.io jẹ atilẹyin fun awọn ile-ikawe alejo gbigba.
Ailewu iranti ti pese ni ipata ni akoko iṣakojọ nipasẹ ṣiṣe ayẹwo itọkasi, ṣiṣe itọju ohun-ini ohun, titọju awọn igbesi aye ohun (awọn iwọn), ati iṣiro deede wiwọle iranti lakoko ṣiṣe koodu. Ipata tun pese aabo lodi si ṣiṣan odidi odidi, nilo ipilẹṣẹ dandan ti awọn iye oniyipada ṣaaju lilo, mu awọn aṣiṣe dara julọ ni ile-ikawe boṣewa, lo imọran ti awọn itọkasi ailagbara ati awọn oniyipada nipasẹ aiyipada, nfunni titẹ aimi to lagbara lati dinku awọn aṣiṣe ọgbọn.
Awọn imotuntun akọkọ:
- A ti ṣe idamọran aaye orukọ abuda tuntun "#[aisan], ti n pese ọna lati ni ipa lori awọn ifiranṣẹ aṣiṣe ti a ṣejade nipasẹ alakojọ. Ni igba akọkọ ti ni aaye titun ni "#[aisan :: on_unimplemented]" abuda, eyi ti o le ṣee lo lati ṣe akanṣe awọn ifiranṣẹ aṣiṣe ti a sọ sinu ipo ti o nilo lati lo aami ti a ko ṣe fun iru. #[diagnostic ::on_unimplemented( message = " Ifiranṣẹ mi fun `ImportantTrait<{A}>` ko ṣe imuse fun `{Self}`", label = "Aami mi", note = "Akiyesi 1", note = "Akiyesi 2"]] iwa ImportantTrait {} fn use_my_trait(_: impl ImportantTrait ) {} fn akọkọ () { use_my_trait (Okun :: titun ()); } aṣiṣe[E32]: Ifiranṣẹ mi fun `IpatakiTrait `ko ṣe imuse fun `Okun` —> src/main.rs:0277:32 | 12 | use_my_trait (okun :: titun ()); | ———— ^^^^^^^^^^^^ Ami Mi | | | ti a beere nipa a dè ti a ṣe nipasẹ yi ipe | = iranlọwọ: iwa `ImportantTrait `ko ṣe imuse fun `Okun` = akọsilẹ: Akiyesi 18 = akiyesi: Akiyesi 12
- Awọn sọwedowo iṣaaju-isọtẹlẹ ti a lo si awọn iṣẹ ti ko ni aabo ni bayi le da duro titi ti ipilẹṣẹ koodu, gbigba awọn sọwedowo wọnyi lati ṣee ṣe laisi iwulo lati kọ ile-ikawe boṣewa ni ipo “#[cfg(debug_assertions)]”. Lati ṣe okunfa awọn sọwedowo, o ti to lati mu awọn iṣeduro yokokoro ṣiṣẹ fun idanwo tabi atunkọ koodu rẹ.
- Iwa awọn iṣẹ ni ile-ikawe boṣewa ti o ni ipa titete awọn itọka ati awọn ege jẹ asọtẹlẹ ni akoko asiko ati da lori data igbewọle. Itọkasi iṣẹ :: align_offset, eyiti o ṣe iṣiro aiṣedeede lati ṣe deede itọka, bayi pada lo :: Max nikan ti iṣẹ naa ba kuna. Awọn iṣẹ bibẹ :: align_to ati bibẹ :: align_to_mut mejeeji, eyiti o yi awọn ege pada si aṣoju pẹlu bibẹ aarin ti o ni ibamu ati ibẹrẹ atilẹba ati awọn ege ipari, ni bayi nigbagbogbo pada apakan aarin ti o tobi julọ.
- Atẹle wọnyi ni a gbe lọ si ẹka iduro:
- impl Ka fun & Stdin
- Gba awọn lilo ti a ti kii-aimi (ti kii-aimi) s'aiye fun diẹ ninu awọn std :: aṣiṣe :: Awọn imuṣẹ-jẹmọ aṣiṣe.
- Impl imuse ?Iwọn iye ti wa ni laaye.
- impl Lati fun io :: aṣiṣe
- Iṣẹ Idena :: tuntun () ti jẹ imuduro lati lo pẹlu abuda “const” ni eyikeyi ipo dipo awọn iduro.
- Fun awọn iru ẹrọ ibi-afẹde x86_64-pc-windows-msvc, i686-pc-windows-msvc, x86_64-pc-windows-gnu, i686-pc-windows-gnu, x86_64-pc-windows-gnullvm ati i686-pc-windows-gnullv bayi nilo o kere ju Windows 10 ẹya.
- Ipele atilẹyin kẹta ti jẹ imuse fun wasm32-wasip2, arm64ec-pc-windows-msvc, armv8r-none-eabihf ati loongarch64-unknown-linux-musl iru ẹrọ. Ipele kẹta jẹ atilẹyin ipilẹ, ṣugbọn laisi idanwo adaṣe, titẹjade awọn ile-iṣẹ osise, tabi ṣayẹwo boya koodu naa le kọ.
- Ipele keji ti atilẹyin fun pẹpẹ ibi-afẹde Fi wasm32-wasip1 ti ni imuse. Ipele keji ti atilẹyin jẹ iṣeduro apejọ kan.
- Syeed wasm32-wasi-preview1-threads ti ni lorukọmii si wasm32-wasip1-threads.
- A ti yipada alakojo lati lo LLVM 18. Nigba lilo LLVM 18 fun x86-32 ati x86-64 faaji, ABI ti o ni nkan ṣe pẹlu awọn iru u128 ati i128 ti yipada.
- Ninu oluṣakoso pact Cargo, ẹya 4 ti awọn faili titiipa (lockfile v4) ti jẹ imuduro.
- Ẹru ni kaṣe agbaye iduroṣinṣin pẹlu alaye nipa lilo data tuntun. Kaṣe naa ti gbalejo ni $CARGO_HOME/.global-cache ni lilo SQLite ati pe a ṣe imudojuiwọn ni adaṣe lati ṣe afihan awọn ayipada tuntun si atọka, faili crate, ilana koodu, git clone, ati isanwo git.
Ni afikun, ede siseto Borgo n gbiyanju lati jẹ asọye diẹ sii ju ede Go lọ, ṣugbọn o kere ju ede Rust lọ. Borgo darapọ awọn ẹya ti o dara julọ ti Go ati Rust, ṣiṣe fun awọn ailagbara ti ede kọọkan. Fun apẹẹrẹ, Go jẹ rọrun ati taara, ṣugbọn ko pese awọn ẹya aabo iru ilọsiwaju. Ede Rust n pese awọn irinṣẹ fun siseto ailewu, ṣugbọn o jẹ idiju. Ise agbese na ni idagbasoke nipasẹ Marco Sampellegrini, onkọwe ti Simple Haskell Handbook ati olupilẹṣẹ ti Quad CI eto iṣọpọ lemọlemọfún.

Borgo nlo titẹ aimi, awọn oriṣi Go-like, ati sintasi ti Rust. Semicolons jẹ iyan ni opin awọn ila ni koodu Borgo. Koodu Borgo jẹ akopọ sinu aṣoju Go ti o ni ibamu ni kikun pẹlu awọn idii Go ti o wa tẹlẹ. Awọn koodu alakojo ti kọ ni ipata ati ti wa ni pin labẹ awọn ISC iwe-ašẹ. lo fmt enum NetworkState Ikojọpọ, Kuna(int), Aṣeyọri(T), } struct Response {akọle: string, duration: int, } fn main() {let res = Idahun {akọle: “Hello world”, duration: 0, } let state = NetworkState.Aseyori(res) jẹ ki msg = ipo ibaamu { NetworkState.Loading => "ṣi nṣe ikojọpọ", NetworkState.Failed(koodu) => fmt.Sprintf("Ni koodu aṣiṣe: %d", koodu), NetworkState.Aseyori (res) => res.akọle, } fmt.Println(msg) }
orisun: opennet.ru
