ipata 1.61 Siseto ede Tu

Itusilẹ ti ede siseto gbogboogbo-idi Rust 1.61, 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ọ:

  • O ṣee ṣe lati ṣalaye awọn koodu ipadabọ tirẹ lati iṣẹ akọkọ. Ni akọkọ, iṣẹ akọkọ ti Rust le pada iru “()” (apakan), eyiti o tọka nigbagbogbo ipo ijade aṣeyọri ayafi ti olupilẹṣẹ ba pe ni “ilana :: ijade(koodu)” iṣẹ. Ni Rust 1.26, ni lilo ami ifopinsi riru ni iṣẹ akọkọ, o ṣee ṣe lati da awọn iye “Ok” ati “Aṣiṣe” pada, ti o baamu si awọn koodu EXIT_SUCCESS ati EXIT_FAILURE ni awọn eto C. Ni Rust 1.61, ami ifopinsi ti jẹ iduroṣinṣin, ati pe iru ExitCode lọtọ ti dabaa lati ṣe aṣoju koodu ipadabọ kan pato, eyiti o jẹ ki awọn iru ipadabọ pato-ipilẹ nipasẹ pese awọn ami iyasọtọ ti tẹlẹ Aṣeyọri ati Ikuna, ati ọna Lati lati da koodu ipadabọ aṣa pada. lo std :: ilana :: ExitCode; fn akọkọ () -> ExitCode {ti o ba ti !check_foo () {pada ExitCode :: lati (8); } ExitCode :: Aseyori }
  • Awọn agbara afikun ti awọn iṣẹ asọye nipa lilo ikosile “const fn” ti ni iduroṣinṣin, eyiti a le pe kii ṣe bi awọn iṣẹ deede nikan, ṣugbọn tun lo ni eyikeyi ipo dipo awọn iduro. Awọn iṣẹ wọnyi jẹ iṣiro ni akoko akojọpọ, kii ṣe ni akoko asiko, nitorinaa wọn wa labẹ awọn ihamọ kan, gẹgẹbi agbara lati ka nikan lati awọn iduro. Ninu ẹya tuntun, awọn iṣẹ ipilẹ pẹlu awọn itọka iṣẹ ni a gba laaye ninu awọn iṣẹ const (ṣiṣẹda, gbigbe ati awọn itọka simẹnti ni a gba laaye, ṣugbọn kii ṣe pipe iṣẹ nipasẹ ijuboluwole); awọn aala abuda fun awọn paramita jeneriki ti awọn iṣẹ const gẹgẹbi T: Daakọ; dynamically dispatchable tẹlọrun (dyn Trait); impl Trait orisi fun awọn ariyanjiyan iṣẹ ati awọn iye pada.
  • Awọn ṣiṣan n kapa Stdin, Stdout ati Stderr ni std :: io ni bayi ni igbesi aye aimi ("'aimi") nigbati o wa ni titiipa, gbigba fun awọn itumọ bi "jẹ ki jade = std :: io :: stdout () . titiipa ();" pẹlu gbigba mimu ati ṣeto titiipa ninu ikosile kan.
  • Apa tuntun ti API ni a ti gbe si ẹka ti iduroṣinṣin, pẹlu awọn ọna ati awọn imuse ti awọn abuda ti jẹ imuduro:
    • Pin :: static_mut
    • Pin :: static_ref
    • Vec :: idaduro_mut
    • VecDeque :: idaduro_mut
    • Kọ fun Kọsọ<[u8; N]>
    • std :: os :: unix :: net :: SocketAddr :: from_pathname
    • std :: ilana :: ExitCode
    • std :: ilana :: Ifopinsi
    • std :: okun :: JoinHandle :: ti wa ni_pari
  • Ẹya “const”, eyiti o pinnu iṣeeṣe ti lilo ni eyikeyi ipo dipo awọn iduro, ni a lo ninu awọn iṣẹ:
    • <* const T> :: aiṣedeede ati <* mut T> :: aiṣedeede
    • <* const T> :: wrapping_offset ati <* mut T> :: wrapping_offset
    • <* const T> :: ṣafikun ati <* mut T> :: ṣafikun
    • <* const T> :: sub ati <* mut T> :: sub
    • <* const T> :: wrapping_add ati <* mut T> :: wrapping_add
    • <* const T> :: wrapping_sub ati <* mut T> :: wrapping_sub
    • <[T]>:: as_mut_ptr
    • <[T]> :: bi_ptr_ibiti
    • <[T]> :: bi_mut_ptr_range

Ni afikun, o le ṣe akiyesi nkan naa “Rust: Atunṣe Iṣeduro pataki” pẹlu akopọ ti awọn iwunilori ti ede Rust lẹhin kikọ awọn laini koodu 100 ẹgbẹrun ninu rẹ lakoko idagbasoke ti ẹrọ iṣẹ ṣiṣe Xous microkernel ti a lo ninu famuwia. Awọn aila-nfani pẹlu sintasi ti o nira lati loye, aipe ati idagbasoke ede ti o tẹsiwaju, aini awọn ile atunwi, awọn iṣoro aṣoju pẹlu igbẹkẹle igbẹkẹle ninu Crates.io, ati iwulo lati ṣetọju ibawi kan lati kọ koodu to ni aabo. Awọn ẹya ti o kọja awọn ireti pẹlu awọn irinṣẹ fun atunṣe koodu ati atunkọ “hakii” ti a ṣafikun lakoko iṣelọpọ iyara.

orisun: opennet.ru

Fi ọrọìwòye kun