Rust 1.39 Whakaputa Reo Papatono

whakaputaina te tuku reo hootaka punaha Rust 1.39, i hangaia e te kaupapa Mozilla. E aro ana te reo ki te haumaru mahara, e whakarato ana i te whakahaere mahara aunoa, me te whai huarahi ki te whakatutuki i te whakarara mahi teitei me te kore e whakamahi i te kaikohi paru, i te wa whakahaere ranei.

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:

  • Whakamaua he wetereo hötaka tukutahi hou i runga i te mahi "async", te whakanekeneke {... } paraka, me te ".await" kaiwhakahaere, he maamaa ake te tuhi i nga kaikawe kaore e aukati i te rere whakahau matua. Ka whakatauritea ki te API i tukuna i mua mo te I/O tukutahi, ko nga hangahanga async/.await he maamaa ki te maarama, he tino panui, ka taea e koe te whakatinana i nga tauwhitinga tukutahi uaua ma te whakamahi i nga tikanga whakahaere rere waia i runga i nga koropiko, nga korero here, me nga tuunga.

    Ko te wetereo Async-await ka taea e koe te hanga i nga taumahi ka taea te whakaroa i te mahi, te whakahoki i te mana ki te miro matua, ka timata ano te mahi mai i te waahi i mutu ai. Hei tauira, ka hiahiatia he okioki penei i te wa e tukatuka ana i te I/O, ka taea te mahi i etahi atu mahi i te wa e tatari ana kia tae mai te waahanga o muri. Ko nga mahi me nga poraka kua tautuhia ki te "async fn" me te "async nekehanga" ka whakahoki i tetahi ahuatanga Future, e tautuhi ana i te whakakitenga tatauranga tukutahi tukutahi. Ka taea e koe te timata tika i te tatau tarewa me te whiwhi i te hua ma te whakamahi i te kaiwhakahaere ".await". Karekau he mahi ka mahia, ka whakaritea i mua i te wa e karangahia ana te .await, ka taea te hanga i nga hanganga kohanga uaua me te kore he taapiri atu.

    async fn first_function() -> u32 { .. }
    ...
    kia heke mai = first_function();
    ...
    kia hua: u32 = future.await;

  • Whakamaua "#![feature(bind_by_move_pattern_guards)]", ka taea te whakamahi i nga taurangi me te momo here "neke-neke" i roto i nga tauira me te whakamahi tohutoro ki enei taurangi i te waahanga "mehemea" o te kupu "ōrite". Hei tauira, ko nga hanganga e whai ake nei ka whakaaetia inaianei:

    fn matua() {
    tukua te huinga: Pouaka<[u8; 4]> = Pouaka::hou([1, 2, 3, 4]);

    huinga huinga {
    num
    if nums.iter().sum::() == 10

    => {
    maturuturu(nums);
    }
    _ => kore e taea te toro atu!(),
    }
    }

  • Ka whakaaetia te tohu huanga i te wa e tautuhi ana i nga tawhā mahi, nga katinga, me nga tohu tohu mahi. Kei te tautokohia nga huanga whakahiato here (cfg, cfg_attr) e whakahaere ana i nga tātaritanga ma te lint (whakaae, whakatupato, whakakore me te aukati) me nga huanga waea tonotono awhina.

    fn len(
    #[cfg(matapihi)] poro: &[u16], // whakamahia te tawhā ki Windows
    #[cfg(kore(matapihi))] poro: &[u8], // whakamahia ki etahi atu OS
    ) -> whakamahia {
    slice.len()
    }

  • Whakatupato mo nga raruraru i kitea i te wa e tirotirohia ana te nama taurangi (kaitaki nama) ma te whakamahi i te tikanga NLL (Non-Lexical Lifetimes), i whakamaoritia ki te waahanga o nga hapa mate. Kia maumahara tatou na te punaha manatoko i runga i tetahi tikanga hou mo te whai whakaaro ki te oranga o nga taurangi nama i taea ai te tautuhi i etahi raru kaore i kitea e te waehere manatoko tawhito. I te mea ko nga putanga hapa mo enei arowhai ka pa ki te hototahitanga ki te waehere mahi o mua, i tukuna nga whakatupato i te tuatahi hei utu mo nga hapa. Kua whakakapia nga whakatupato ki nga hapa i te wa e rere ana i te aratau Rust 2018. I te tukunga e whai ake nei, ka whakatinanahia ano te putanga hapa i roto i te aratau Rust 2015, ka mutu te whakakore i te kaitirotiro nama tawhito;
  • Ko te huanga "const", e whakatau ana i te kaha ki te whakamahi i roto i tetahi horopaki hei utu i nga taumau, ka whakamahia mo nga mahi Vec::new, String::new, LinkedList::new, str::len, [T]::len , str::as_bytes,
    abs, takai_abs me te puhake_abs;

  • He waahanga hou o nga API kua whakawhitia ki te waahanga pumau, tae atu ki nga tikanga kua whakapumautia
    Pin::ki_roto, Inamata:: kua tirohia te roanga_mai i te wa me te Inamata::makuku_waa_mai;

  • Ka taea e te kaiwhakahaere kete utanga te whakamahi i te toronga ".toml" mo nga konae whirihoranga. Kua taapirihia he tautoko tuatahi mo te hanga i te whare pukapuka paerewa mai i Cargo. I taapirihia te haki "--workspace", ka whakakapi i te haki "--katoa" tautohetohe. Kua taapirihia he mara hou ki te metadata "whakaputa", ka taea e koe te whakaputa i nga whakawhirinakitanga ma te tohu tohu git me te tau putanga. Kua taapirihia te whiringa whakamatautau "-Ztimings" ki te whakaputa i tetahi ripoata HTML mo nga wa mahi o nga momo waahanga whakahiato.
  • I roto i te rustc compiler, ko nga karere tātaritanga ko te kuti i nga hiku o te waehere kaore e uru ki te tauranga. I whakawhiwhia ki te taumata tuatoru o te tautoko mo nga papaapapa kua tohua
    i686-unknown-uefi me sparc64-unknown-openbsd. Ko te taumata tuatoru ko te tautoko taketake, engari kaore he whakamatautau aunoa me te whakaputanga o nga hanga mana.

Source: opennet.ru

Tāpiri i te kōrero