Famoahana fiteny fandaharana Rust 2021 (1.56)

Navoaka ny famoahana ny fiteny fandrindrana rafitra Rust 1.56, naorin'ny tetikasa Mozilla, saingy novolavolaina ankehitriny eo ambany fiahian'ny fikambanana tsy miankina Rust Foundation. Ho fanampin'ny laharan'ny dikan-teny mahazatra, ny famoahana dia antsoina koa hoe Rust 2021 ary manamarika ny fanamafisana ny fanovana natolotra nandritra ny telo taona lasa. Ny Rust 2021 dia ho fototry ny fampitomboana ny fiasa mandritra ny telo taona ho avy, mitovy amin'ny nahatonga ny famoahana ny Rust 2018 ho fototry ny fampivoarana ny fiteny tao anatin'ny telo taona lasa.

Mba hitazonana ny fifanarahana dia afaka mampiasa etikety "2015", "2018" ary "2021" ao amin'ny fandaharan'asany ny mpamorona, ahafahan'ny programa ampifandraisina amin'ny tsipika fanjakana amin'ny fiteny mifanandrify amin'ireo fanontana Rust voafantina. Ny edisiona dia nampidirina mba hanasaraka ireo fanovana tsy mifanaraka ary namboarina ao amin'ny metadata amin'ny fonosana entana amin'ny alΓ lan'ny saha "edition" ao amin'ny fizarana "[fonosana]". Ohatra, ny fanontana "2018" dia ahitana ny fiasa izay niorina tamin'ny faran'ny taona 2018 ary mirakitra ireo fanovana hafa rehetra izay tsy manapaka ny fifanarahana. Ny fanontana 2021 dia misy ihany koa ireo endri-javatra manimba ny fifampiraharahana natolotra tamin'ny famoahana 1.56 ankehitriny ary nankatoavina ho fampiharana amin'ny ho avy. Ankoatra ny fiteny ihany koa, ny tonian-dahatsoratra dia mandinika ny toetry ny fitaovana sy ny antontan-taratasy.

Ny tsy fifanarahana lehibe voarakitra ao amin'ny Rust 2021:

  • Misaraka amin'ny fanakatonana - Afaka maka ny anaran'ny saha tsirairay izao ny fanakatonana fa tsy ny famantarana manontolo. Ohatra, "|| ax + 1" dia "ax" ihany fa tsy "a".
  • Ny toetran'ny IntoIterator ho an'ny array: array.into_iter() dia mamela anao hamadika ny singa array amin'ny soatoavina, fa tsy amin'ny references.
  • Ny fanodinana ny teny "|" dia niova tamin'ny macro_rules (Boolean OR) amin'ny lamina - Ny famaritana ":pat" amin'ny lalao dia manaja ny "A | B".
  • Ny mpitantana fonosana entana dia ahitana amin'ny alΓ lan'ny default ny dikan-teny faharoa amin'ny famahana ny endri-javatra, fanohanana izay niseho tao amin'ny Rust 1.51.
  • Ny toetra TryFrom, TryInto ary FromIterator dia nampidirina tao amin'ny maody famakiam-boky mahazatra mialoha.
  • Mampiasa format_args!(..) foana izao ny macros panic!(..) sy asser!(expr, ..) handrafetana tady, mitovy amin'ny println!().
  • Ny teny hoe ident#, identΒ»..." sy ident'...' dia voatokana amin'ny teny syntax.
  • Nafindra ny bare_trait_objects sy ellipsis_inclusive_range_patterns fampitandremana ho amin'ny fahadisoana.

Vaovao amin'ny Rust 1.56:

  • Ao amin'ny Cargo.toml, ao amin'ny fizarana "[fonosana]", dia nampiana ny saha version rust, izay ahafahanao mamaritra ny dikan-teny farany ambany indrindra amin'ny Rust ho an'ny fonosana. Raha tsy mifanaraka amin'ny mari-pamantarana voatondro ny kinova ankehitriny, dia hijanona amin'ny hafatra diso ny Cargo.
  • Rehefa mampifanaraka ny lamina amin'ny fomba fiteny "mamatotra @ lamina", dia omena ny fanohanana mba hamaritana ireo fatorana fanampiny (ohatra, "avelao ny matrix @ Matrix {row_len, .. } = get_matrix();").
  • Ny ampahany vaovao amin'ny API dia nafindra ho amin'ny sokajy stable, ao anatin'izany ny fomba sy ny fampiharana ny toetra efa niorina:
    • std::os::unix::fs::chroot
    • UnsafeCell::raw_get
    • BufWriter::into_parts
    • core::panic::{UnwindSafe, RefUnwindSafe, AssertUnwindSafe}
    • Vec::mihena_to
    • String::mihena_to
    • OsString::shrink_to
    • PathBuf::shrink_to
    • BinaryHeap::shrink_to
    • VecDeque::mihena_to
    • HashMap::shrink_to
    • HashSet::shrink_to
  • Ny toetra "const", izay mamaritra ny mety ho fampiasana amin'ny toe-javatra rehetra fa tsy constants, dia ampiasaina amin'ny fiasa.
    • std::mem::transmute
    • [T]::voalohany
    • [T]::split_first
    • [T]:: farany
    • [T]::split_last
  • Ny compiler dia navadika hampiasa LLVM version 13.
  • Napetraka ny fanohanana ambaratonga faharoa ho an'ny sehatra aarch64-apple-ios-sim ary ambaratonga fahatelo ho an'ny sehatra powerpc-unknown-freebsd sy riscv32imc-esp-espidf. Ny ambaratonga fahatelo dia misy fanohanana fototra, saingy tsy misy fitsapana mandeha ho azy, famoahana ny fananganana ofisialy, ary fanamarinana ny fahaiza-manamboatra kaody.

Tsarovy fa ny Rust dia mifantoka amin'ny fiarovana ny fitadidiana, manome fitantanana fitadidiana mandeha ho azy, ary manome fitaovana hanatrarana ny fitoviana ambony amin'ny fanatanterahana asa nefa tsy mampiasa mpanangom-pako na fotoana fiasana (ahena ny fotoana fandehanana amin'ny fanombohana fototra sy fikojakojana ny tranomboky mahazatra).

Ny fitantanana fitadidiana mandeha ho azy an'i Rust dia manafoana ny lesoka rehefa manodinkodina ny tondro ary miaro amin'ny olana ateraky ny fanodikodinam-pahatsiarovana ambany, toy ny fidirana amin'ny faritra fitadidiana rehefa afaka izany, ny tsy fahampian'ny pointer tsy misy tondro, ny fihoaran'ny buffer, sns. Mba hizarana trano famakiam-boky, hiantohana ny fivoriambe ary hitantana ny fiankinan-doha, ny tetikasa dia mamolavola ny mpitantana fonosana Cargo. Ny tahiry crates.io dia tohanana amin'ny fampiantranoana tranomboky.

Source: opennet.ru

Add a comment