Rust 1.73 Whakaputa Reo Papatono

Ko te tukunga o te reo hootaka kaupapa whanui Rust 1.73, i hangaia e te kaupapa Mozilla, engari kua whakawhanakehia inaianei i raro i te maru o te whakahaere kore-painga motuhake Rust Foundation, kua whakaputaina. Ko te reo e arotahi ana ki te haumaru mahara me te whakarato i nga huarahi ki te whakatutuki i te whakarara nui i roto i nga mahi mahi, me te karo i te whakamahi o te kaikohi paru me te wa mahi (ka whakahekehia te wa whakahaere ki te timatanga me te tiaki i te whare pukapuka paerewa).

Ko nga tikanga whakahaere mahara a Rust ka whakawātea i te kaiwhakawhanake mai i nga hapa raweke o te atatohu me te whakamarumaru mai i nga raru ka puta mai i te raweke mahara taumata-iti, penei i te urunga kore-kore, te kore tohu tohu kore, te paopao, me era atu. Ki te tohatoha whare pukapuka, ki te whakarite i te huihuinga me te whakahaere i nga whakawhirinakitanga, kei te whakawhanake te kaupapa i te kaiwhakahaere kete Uta. Kei te tautokohia te putunga crates.io mo te manaaki whare pukapuka.

Ka whakamanahia te haumaru mahara i roto i te Rust i te wa whakahiato ma te arowhai tohutoro, te whai mana o te taonga, te whakaaro mo te oranga o te ahanoa (scoping), me te arotake urunga mahara i te wa whakahaere. Ko te waikura hoki he whakamarumaru mai i nga puhaketanga integer, me arawhiti nga uara taurangi i mua i te whakamahi, he pai ake te whakahaere hapa i roto i te whare pukapuka paerewa, ka whakamahi taunoa i te kaupapa o nga tohutoro koretake me nga taurangi, me te tuku patopato pateko kaha hei whakaiti i nga hapa arorau.

Nga mahi hou:

  • Ko te whakatakotoranga o nga karere i tukuna e te kaihautu tukinga papatono taunoa (panic) kua hoahoa ano. Ko te kupu i tohua i roto i te tonotono "panic!" kua whakaatuhia i runga i te rarangi motuhake kaore he tohu whakahua, he maamaa ake te panui me te whakakore i te rangirua i te wa e noho ana nga kohanga kohanga, ka wehea ranei ki nga rarangi maha. fn matua() {let file = "ferris.txt"; panic!("Aue! {file:?} kaore i kitea!"); } Ko te miro 'matua' e mataku ana i te 'aue! "ferris.txt" kaore i kitea!', src/main.rs:3:5 Ka mataku te miro 'main' ki src/main.rs:3:5: aue! "ferris.txt" kaore i kitea!

    Ko te putanga o nga karere e whakaatuhia ana i te wa i puta ai nga tonotono "assert_eq" me "assert_ne" kua mahi ano. fn matua() { assert_eq!("🦀", "🐟", "ehara te ferris i te ika"); } He miro 'matua' i mataku i te 'rahua te whakapae: `(maui == matau)` maui: `"🦀"`, matau: `"🐟"`: ehara a ferris i te ika', src/main.rs: 2:5 I rahua te miro 'matua' i src/main.rs:2:5: i rahua te whakapae `maui == matau`: ehara te ferris i te ika i mahue: “🦀” matau: “🐟”

  • I runga i te RFC 3184, kua taapirihia te kaha ki te raweke tika i nga miro-rohe (thread_local) nga taviri rokiroki LocalKey. > me LocalKey > ma te whakamahi i nga tikanga tiki(), huinga(), tango() me te whakakapi(), hei utu mo te katinga "me(|roto| ...)", ka whakakore i te hiahia ki te mahi i etahi atu waehere arawhiti mo te nga uara taunoa kua tohua mo nga miro hou ina whakamahi ana i te tonotono "miro_local!" thread_local! { NGA mea pateko: Pūtau > = Pūtau::hou(Vec::new()); } fn f() { // was THINGS.with(|i| i.set(vec![32, 1, 2])); // became THINGS.set(vec![3, 1, 2]); // ... // was let v = THINGS.with(|i| i.take()); // ka tukua v: Vec = NGA MEA.tango(); }
  • Kua nekehia tetahi waahanga hou o te API ki te waahanga pumau, tae atu ki nga tikanga me nga whakatinanatanga o nga ahuatanga kua whakapumautia:
    • Kore i hainatia {integer}::div_ceil
    • Kore i hainatia {integer}::next_multiple_of
    • Kore i hainatia {integer}::checked_next_multiple_of
    • std::ffi::FromBytesUntilNulError
    • std::os::unix::fs::chown
    • std::os::unix::fs::fchown
    • std::os::unix::fs::lfchown
    • Pātuhi Rohe:: >:: tiki
    • Pātuhi Rohe:: >::tautuhi
    • Pātuhi Rohe:: >::tango
    • Pātuhi Rohe:: >::whakakapi
    • Pātuhi Rohe:: >::with_borrow
    • Pātuhi Rohe:: >::with_borrow_mut
    • Pātuhi Rohe:: >::tautuhi
    • Pātuhi Rohe:: >::tango
    • Pātuhi Rohe:: >::whakakapi
  • Ko te huanga "const", e whakatau ana i te kaha ki te whakamahi i roto i tetahi horopaki hei utu mo nga taumau, ka whakamahia i roto i nga mahi:
    • rc::He ngoikore::hou
    • tukutahi::He ngoikore::hou
    • Korekore::as_ref
  • Ka whakaratohia e te kaitoi korero nga korero ki te waahanga ".comment", he rite ki a GCC me Clang.
  • Ko te taumata tuatoru o te tautoko kua whakatinanahia mo nga papaahi aarch64-unknown-teeos, csky-unknown-linux-gnuabiv2, riscv64-linux-android, riscv64gc-unknown-hermit, x86_64-unikraft-linux-musl me x86_64-unknown-linux -oho. Ko te taumata tuatoru ko te tautoko taketake, engari kaore he whakamatautau aunoa, te whakaputa i nga hanganga mana, te tirotiro ranei mena ka taea te hanga te waehere.
  • Ko te taumata tuarua o te tautoko mo te papaaapapa ko te wasm32-wasi-preview1-miro kua whakatinanahia. Ko te taumata tuarua o te tautoko he taurangi hui.

Source: opennet.ru

Tāpiri i te kōrero