Rust's otomatiki ndangariro manejimendi inosunungura mugadziri kubva pakugadzirisa pointer uye inodzivirira kubva kune yakaderera-level ndangariro manipulation, senge mushure-yemahara memory yekuwana, null pointer dereferences, buffer overruns, nezvimwe. Maneja wepakeji ari kugadzirwa kugovera maraibhurari, kuona kuungana uye kugadzirisa zvinovimbika neprojekiti.
chikuru
- Yakawedzera pombi yekubatanidza modhi (pipelined), umo kuvakwa kwekasitiri kireti pakiti kunotanga nekukurumidza kana metadata yekutsamira yave kuwanikwa, pasina kumirira kuti kuunganidzwa kwayo kupere. Paunenge uchigadzira pasuru, zvinotsamira hazvidi kuunganidzwa zvizere, kungotsanangura metadata, iyo inosanganisira rondedzero yemhando, zvinoenderana, uye zvinhu zvinotengeswa kunze kwenyika. Metadata inoitwa kuti iwanikwe pakutanga mukugadzirisa maitiro, saka mapakeji akabatanidzwa anogona kuunganidzwa kare kare. Paunenge uchivaka mapakeji ega, iyo yakarongwa modhi haikanganisi kuita, asi kana iyo kuvaka ichivhara mapakeji ane matavi anotsamira, iyo yakazara nguva yekuvaka inogona kuderedzwa ne10-20%;
- Inova nechokwadi chekuonekwa kwekushandiswa kusiri kwemabasa
std::mem::uninitialized ΠΈstd::mem::zeroed . Semuyenzaniso, std::mem::uninitialized yakanakira kukurumidza kugadzira arrays, asi inorasisa muunganidzi nekuti inoratidzika kunge yakatangwa, asi muchokwadi kukosha kunoramba kusati kwatanga. Iyo mem :: uninitialized basa rakatomakwa sekunge rakarambwa uye zvinokurudzirwa kushandisa mhando yepakati panzvimboPamweUniti . Kana iri mem ::zeroed, basa iri rinogona kukonzera matambudziko nemhando dzisingakwanisi kugamuchira zero values.Kubatsira kuona maitiro asina kutsanangurwa, kuburitswa kutsva kunowedzera lint cheki kumugadziri anoona mamwe matambudziko ane mem ::uninitialized kana mem::zeroed. Semuyenzaniso, iwe zvino wawana kukanganisa paunenge uchiedza kushandisa mem::uninitialized kana mem::zeroed nemhando &T neBhokisiβΉTβΊ, izvo zvinomiririra zvinhu zvinonongedza zvisingakwanisi kubvuma zvisina maturo;
- Iyo "#[yakadzikiswa]" hunhu hwakawedzerwa kuti kubvumira crate mapakeji kumakirwe echinyakare uye akarongerwa kubviswa mune ramangwana. Kubva kuRust 1.38, hunhu uhu hunogonawo kushandiswa kune macros;
- Yakawedzera kugona kushandisa iyo "#[global_allocator]" hunhu muma submodules;
- Akawedzera basa
std::chero::type_name , iyo inokubvumira kuti uwane zita remhando, iyo inogona kubatsira pakugadzirisa zvinangwa. Semuenzaniso, panguva yekuitwa kwechirongwa iwe unogona kuziva kuti ndeupi rudzi rwainzi basa racho:fn gen_valueβΉT: Default>() -βΊ T {
println!("Kutanga chiitiko che{}", std::chero::type_name::βΉTβΊ());
Default::default()
}fn chikuru() {
rega _: i32 = gen_value(); # "i32" ichadhindwa
rega _: Tambo = gen_value (); # ichadhinda "alloc::string::String"
} - Mabasa akawedzerwa eraibhurari yakajairwa:
- slice ::{concat, connect, join} ava kukwanisa kutora kukosha &[T] kuwedzera ku&T;
- "*const T" uye "*mut T" zvino shandisa marker::Unpin;
- "ArcβΉ[T]βΊ" uye "RcβΉ[T]βΊ" zvino shandisa FromIteratorβΉTβΊ;
- iter::{StepBy, Peekable, Take} ikozvino shandisa DoubleEndedIterator.
- ascii :: EscapeDefault inoshandisa Clone uye Display.
- Chikamu chitsva che APIs chakaendeswa kune yakagadzikana chikamu, kusanganisira nzira dzakagadziriswa
- βΉ*const TβΊ::cast, βΉ*mut TβΊ::cast,
- Nguva::as_secs_f{32|64},
- Nguva::div_duration_f{32|64},
- Nguva::div_f{32|64},
- Nguva::kubva_secs_f{32|64},
- Nguva::mul_f{32|64},
- division operations nezvasara
div_euclid uye rem_euclid kune ese ekutanga primitives;
- Yakawedzerwa rutsigiro rwekutsanangura iyo "--maficha" sarudzo kakawanda kugonesa akasiyana maficha mune cargo package maneja;
- Iyo compiler inopa chetatu
level tsigiro yenzvimbo dzakanangwa aarch64-uwp-windows-msvc, i686-uwp-windows-gnu, i686-uwp-windows-msvc, x86_64-uwp-windows-gnu, x86_64-uwp-windows-msvc zvinangwa, armvux7-zvisingazivikanwi- -gnueabi, armv7-isingazivikanwe-linux-musleabi, hexagon-isingazivikanwe-linux-musl uye riscv32i-isingazivikanwe-hapana-elf. Iyo yechitatu nhanho inosanganisira yekutanga tsigiro, asi pasina otomatiki kuyedzwa uye kuburitswa kwepamutemo kuvaka.
Source: opennet.ru