Rust 1.42 Whakaputa Reo Papatono

whakaputaina te tuku reo hootaka punaha Rust 1.42, i hangaia e te kaupapa Mozilla. Ka arotahi te reo ki te haumaru mahara, ka whakarato i te whakahaere mahara aunoa, ka whakarato taputapu mo te whakatutuki i te whakarara mahi teitei me te kore e whakamahi i te kaikohi paru me te waahi.

Ma te whakahaere mahara aunoa a Rust ka wetekina te kaiwhakawhanake mai i te raweke i te atatohu me te whakamarumaru i nga raru ka puta mai i te raweke mahara taumata-iti, penei i te uru mahara kore-muri, te kore tohu tohu kore, te paopao, me era atu. Kei te whakawhanakehia he kaiwhakahaere mokihi hei tohatoha whare pukapuka, hei whakarite i te huihuinga me te whakahaere i nga whakawhirinakitanga a te kaupapa. utanga, ka taea e koe te tiki i nga whare pukapuka e hiahiatia ana mo te kaupapa i te paato kotahi. Ka tautokohia he putunga hei manaaki i nga whare pukapuka crates.io.

Main nga mahi auaha:

  • Kua tapirihia tautoko mo nga tauira mo te whakarite i nga waahanga o nga poro (nga huinga hihiri, poro). I mua, i whakaaetia nga taapiri tika, engari inaianei ka taea te whakamahi i nga hanga kua tohua ".." ki te kapi i nga toenga o te huinga. Hei tauira:

    fn foo(kupu: &[&str]) {
    kupu ōrite {

    // ka taki i nga huānga timatanga o te huinga me te wareware
    nga huānga e whai ana i a raatau
    ["Kia ora", "Ao", "!", ..] => println!("Kia ora te Ao!"),

    // ka taki i nga mea tuatahi e rua "Foo" me "Bar", a ko te toenga kaore he mea nui
    ["Foo", "Bar", ..] => println!("Baz"),

    // warewarehia nga mea katoa, engari ko te waahanga whakamutunga ko "!".
    [.., “!”] => println!(“!!!”),

    // i te wahanga timatanga ka whakauruhia e matou nga mea katoa engari ko te waahanga whakamutunga, me "z"
    [timata @ .., "z"] => println!("timata ki: {:?}", timata),

    // i roto i te waahanga mutunga ka hoatu e matou nga mea katoa haunga te huānga tuatahi, me "a".
    ["a", mutu @ ..] => println!("ka mutu ki: {:?}", mutunga),

    okioki => println!("{:?}", okioki),
    }
    }

  • Kua taapirihia he tonotono hou "match!", ka tango i tetahi korero me tetahi tauira hei whakaurunga, ka whakahoki "pono" mena ka rite te tauira ki te korero. Ka taea e te tauira te whakamahi i nga mahi "|". me "mehemea".

    whakaōrite self.partial_cmp(ētahi atu) {
    Ko etahi(He iti ake) => pono,
    _ => teka,
    }

    ōrite!(self.partial_cmp(atu), Some(It's It))

    kia foo = 'f';
    assert!(matches!(foo, 'A'..='Z' | 'a'..='z'));

    kia pae = Some(4);
    assert!(match!(bar, Some(x) if x > 2));

  • I roto i nga panui ohorere ka whakaatuhia ina he te whakamahi
    momo Kōwhiringa me te Hua, inaianei ka whakaatu i nga nama raina me te hono ki te waehere i raru ai te waea, kaua ki nga hononga ki te waehere e whakatinana ana i te piiraa i roto i te libcore. Hei tauira, ka pa te huringa ki nga waea ki te wetewete me te tatari mo te Kōwhiringa::Karekau, ka pakaru ranei i te wa e whakamahi ana i te unwrap_err, expect, expect_err, me nga tikanga rite ki te momo Hua.

  • Ka tukuna e te kaiwhakahaere kete Uta te whakakapi aunoa i te "proc_macro crate" ki te poraka "waho" mo nga kete me nga tonotono tikanga. Ma tenei huringa ka taea te whakamahi i te tohutohu "whakamahi" ki nga tonotono tikanga me te kore e tohu "external crate proc_macro;" i roto i te waehere. Hei tauira, mena ka whakamahia e te papatono te raina "whakamahia proc_macro::TokenStream;", ka mahi tonu te waehere mena ka tangohia te "external crate proc_macro;" i reira.
  • Kua whakawhānuihia nga kaha o te whare pukapuka paerewa. In iter::Putea tāpirihia Tuku me te Tukutahi tautoko mo nga uara T.
    Waea Pin::{map_unchecked, map_unchecked_mut} tuku mai i te whakahoki mai i tetahi uara momo mo te whakatinanatanga "Rahi".
    In io::Pehu whakatinana PartialEq and Eq. Ko te huanga "const" ka whakatau i te kaha ki te whakamahi i roto i tetahi horopaki hei utu mo nga taumau, tono mo te Tahora:: tikanga hou.

  • Kua whakawhitia he wahanga hou o te API ki te waahanga pumau, tae atu ki te CondVar::wait_while, CondVar::wait_timeout_while,
    DebugMap::key, DebugMap::value,
    Whakataka ā-ringa::tango,
    ptr::slice_from_raw_parts_mut and ptr::slice_from_raw_parts.

  • Kua whakakorehia te Hapa::whakaahua tikanga.
  • He tautoko taumata tuarua mo nga papaapapa armv7a-none-eabi me riscv64gc-unknown-linux-gnu. He tautoko mo te whare pukapuka paerewa mo te riscv64gc-unknown-linux-gnu platform kua whakaratohia.
    Apple 32-bit tüäpapa whakahekehia tae noa ki te taumata tuatoru o te tautoko, e tohu ana i te tautoko taketake, engari kaore he whakamatautau aunoa me te whakaputanga o nga hanga mana. Ko te whakaheke i te tautoko na te kore a Apple e tautoko i nga papaaho 32-bit.

Source: opennet.ru

Tāpiri i te kōrero