Rust 1.73 Famoahana ny fiteny fandaharana

Navoaka ny fiteny fandaharana Rust 1.73 amin'ny tanjona ankapobeny, naorin'ny tetikasa Mozilla saingy novolavolaina ankehitriny eo ambany fiahian'ny fikambanana tsy miankina Rust Foundation. Mifantoka amin'ny fiarovana ny fitadidiana ilay fiteny ary manome fitaovana ahafahana manatratra ny fitovian'ny asa avo lenta sady misoroka ny fampiasana mpanangom-pako sy ny fotoana fandehanana (ahena ny fotoana fampandehanana amin'ny fanombohana fototra sy fikojakojana ny tranomboky mahazatra).

Ny fomba fitantanana fitadidian'i Rust dia mamonjy ny mpamorona amin'ny hadisoana rehefa manodinkodina ny tondro ary miaro amin'ny olana mipoitra noho ny fikarakarana fitadidiana ambany, toy ny fidirana amin'ny faritra fitadidiana rehefa afaka izany, ny fanafoanana ireo tondro tsy misy dikany, ny fihoaran'ny buffer, sns. Mba hizarana trano famakiam-boky, manome fananganana ary mitantana ny fiankinan-doha, ny tetikasa dia mamolavola ny mpitantana fonosana Cargo. Ny tahiry crates.io dia tohanana amin'ny fampiantranoana tranomboky.

Ny fiarovana ny fitadidiana dia omena ao amin'ny Rust amin'ny fotoana fanangonana amin'ny alΓ lan'ny fanamarinana reference, ny fanaraha-maso ny fananana zavatra, ny fanaraha-maso ny androm-piainan'ny zavatra (scopes), ary ny fanombanana ny fahamarinan'ny fidirana fahatsiarovana mandritra ny famonoana ny code. Ny Rust koa dia manome fiarovana amin'ny fihoaran'ny integer, mitaky fanombohana tsy maintsy atao ny soatoavina miovaova alohan'ny fampiasana, mitantana ny lesoka tsara kokoa ao amin'ny tranomboky mahazatra, mampihatra ny foto-kevitry ny references sy ny variables tsy miova amin'ny alΓ lan'ny default, manolotra fanoratana static mahery mba hampihenana ny fahadisoana lojika.

Fanavaozana lehibe:

  • Nohavaozina ny endriky ny hafatra navoakan'ny mpandrindra ny fianjeran'ny programa (panic). Ny lahatsoratra voalaza ao amin'ny macro "panic!" dia aseho amin'ny tsipika misaraka tsy misy mari-tsoratra izao, ka mahatonga ny hafatra ho mora vakina sy hanafoana ny fisafotofotoana rehefa misy ireo teny nalaina an-tsoratra na mizara amin'ny andalana maro. fn main() { let file = "ferris.txt"; raiki-tahotra!("oh tsia! {rakitra:?} tsy hita!"); } Nisy kofehy 'main' nikoropaka tamin'ny 'oh tsia! "ferris.txt" tsy hita!', src/main.rs:3:5 Raiki-tahotra ny kofehy 'main' tao amin'ny src/main.rs:3:5: oh tsia! "ferris.txt" tsy hita!

    Naverina niasa ihany koa ny fivoahan'ny hafatra aseho rehefa mipoitra ny macros "assert_eq" sy "assert_ne". fn main() { assert_eq!("πŸ¦€", "🐟", "ferris dia tsy trondro"); } Nisy kofehy 'main' nikoropaka tamin'ny hoe 'tsy nahomby ny filazana: `(ankavia == havanana)` ankavia: `"πŸ¦€"`, havanana: `"🐟"`: tsy trondro ny ferris', src/main.rs: 2:5 Nisahotaka tao amin'ny src/main.rs:2:5 ny kofehy 'main': tsy nahomby ny filazana hoe 'havia == havanana: tsy trondro tavela ny ferris: "πŸ¦€" havanana: "🐟"

  • Mifanaraka amin'ny RFC 3184, ny fahafahana manodikodina mivantana ny fanalahidin'ny fitehirizam-bokatra LocalKey (thread_local) > ary LocalKey > amin'ny alalan'ny fampiasana fomba get(), set(), take() ary replace(), fa tsy mampiasa fanakatonana "miaraka amin'ny(| anaty | ...)", izay manafoana ny tsy maintsy hanaovana fehezan-dalΓ na fanombohana fanampiny ho an'ny ny soatoavina default voatondro ho an'ny kofehy vaovao rehefa mampiasa ny macro "thread_local!" thread_local! { ZAVATRA static: Cell > = Cell::vaovao(Vec::vaovao()); } fn f() { // dia THINGS.with(|i| i.set(vec![32, 1, 2])); // lasa THINGS.set(vec![3, 1, 2]); // ... // dia navela v = THINGS.with(|i| i.take()); // lasa let v: Vec = THINGS.take(); }
  • 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:
    • Tsy voasonia {integer}::div_ceil
    • Tsy voasonia {integer}::next_multiple_of
    • Tsy voasonia {integer}::checked_next_multiple_of
    • std::ffi::FromBytesUntilNulError
    • std::os::unix::fs::chown
    • std::os::unix::fs::fchown
    • std::os::unix::fs::lfchown
    • LocalKey:: >:: mahazo
    • LocalKey:: >:: napetraka
    • LocalKey:: >:: mandray
    • LocalKey:: >::soloina
    • LocalKey:: >::miaraka_mindram-bola
    • LocalKey:: >::with_borrow_mut
    • LocalKey:: >:: napetraka
    • LocalKey:: >:: mandray
    • LocalKey:: >::soloina
  • Ny toetra "const", izay mamaritra ny mety hampiasana azy amin'ny toe-javatra rehetra fa tsy constants, dia ampiasaina amin'ny fiasa:
    • rc::Malemy::vaovao
    • sync::Malemy::vaovao
    • NonNull::as_ref
  • Ny compiler dia manome firaketana ny mombamomba ny dikan-teny ao amin'ny fizarana ".comment", mitovy amin'ny GCC sy Clang.
  • Ny fanohanana ambaratonga fahatelo dia nampiharina ho an'ny sehatra aarch64-unknown-teeos, csky-unknown-linux-gnuabiv2, riscv64-linux-android, riscv64gc-unknown-hermit, x86_64-unikraft-linux-musl ary x86_64-unknown-linux -aho. Ny ambaratonga fahatelo dia misy fanohanana fototra, saingy tsy misy fitsapana mandeha ho azy, famoahana fananganana ofisialy, na fanamarinana raha azo amboarina ny kaody.
  • Ny ambaratonga faharoa fanohanana ny sehatra kendrena wasm32-wasi-preview1-threads dia nampiharina. Ny ambaratonga faharoa amin'ny fanohanana dia misy fiantohana fivoriambe.

Source: opennet.ru

Add a comment