Kua tukuna te waikura 1.82. Tirotiro hou i runga i te Rust. Te whakamahi waikura i Volvo

Ko te tukunga o te reo hootaka kaupapa whanui Rust 1.82, 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 whakahau "mohio" kua taapiri atu ki te kaiwhakahaere kete utanga hei whakaatu korero mo tetahi kete kei roto i te putunga.
  • He tautoko taapiri mo te "whakamahi<..>" wetereo i "impl Trait", e tohu ana i nga korero mo nga momo huna. Hei tauira, "impl Trait + use<'x, T>" e tohu ana ko nga tawhā "x" me "T" anake ka whakaaetia kia whakamahia ki tetahi momo huna.
  • Kua whakatakotohia he wetereo motuhake mo te hanga atatohu mata, hei whakakapi i nga tonotono i whakamahia i mua: kua whakakapia te tonotono “addr_of!(expr)” ki te kaiwhakahaere “&raw const expr”, me te tonotono “addr_of_mut!(expr)” kua whakakapia. na te "&raw mut" operator expr". struct Kiki { not_aligned_field: i32, } fn matua() {let p = Packed { not_aligned_field: 1_82 }; // Te huarahi tawhito ki te hanga i te atatohu mata kia ptr = std::ptr::addr_of!(p.not_aligned_field); // He ara hou ki te hanga i te atatohu mata kia ptr = &raw const p.not_aligned_field; kia val = kino { ptr.read_unaaligned()}; }
  • Inaianei ka taea te tautuhi i nga mahi haumaru me nga taumau me te ora 'pateko' i roto i nga poraka o waho me te huanga "kore" (i mua, ko nga huānga katoa o te "waho haumaru" ka taea anake te huanga "kaore i te haumaru"): waho haumaru { pub haumaru static TAU : f64; pub safe fn sqrt(x: f64) -> f64; paparapapara kino fn strlen(p: *const u8) -> whakamahi; }
  • Ko nga huanga no_mangle, hononga_waahanga me te export_name, e arai atu ai ki te whanonga kore-tautuhia, ka kiia inaianei he kore haumaru me te hiahia ki te haki "kore haumaru", hei tauira: #[unsafe(no_mangle)] pub fn my_global_function() { }
  • Ko te whakahoa tauira ka taea te pekehia nga momo putua, penei i te "enum Void {}" me nga hanganga me te mara putua e kitea ana. whakamahi std::convert::Infallible; pāparakāuta fn wetekina_kaore_panic (x: Hua ) -> T { waiho Ok(x) = x; // "Err" ka taea te peke x }
  • Ko nga momo mo nga tau ira maanu (f32 me te f64) kua whakatauritehia te whanonga i te wa e tukatuka ana i nga uara NaN kore-tau (0.0/0.0), me te whakaae hoki ki te whakamahi i nga mahi tohu maanu i roto i te const fn.
  • Ko nga whakauru whakaurunga ka taea te whakamahi i nga operand me te huanga "const" ki te whakamahi tika i nga uara tau integer me te kore e penapena tuatahi ki roto i te rehita. const MSG: &str = "Kia ora, te ao!\n"; haumaru { matua:: arch:: asm!( "mov rdx, {LEN} // te tohutohu 'mov rdx, 14′" ka puta, LEN = const MSG.len(), … ); }
  • Ko te whakatika i nga korero me te huanga "pateko" ka whakaaetia i roto i te horopaki haumaru me te kore e tautuhia he paraka kore haumaru (kaore nga kaiwhakahaere "&raw mut" me "&raw const" e pa ki te uara o te operand ka hangaia he tohutoro ki reira): static mut STATIC_MUT: Momo = Momo::hou( ); extern "C" { static EXTERN_STATIC: Momo; } fn matua() { kia static_mut_ptr = &raw mut STATIC_MUT; waiho extern_static_ptr = &raw const EXTERN_STATIC; }
  • 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:
    • std:: miro:: Kaihanga:: spawn_unchecked
    • std::str::CharIndices::offset
    • std::kōwhiringa::Kōwhiringa::ko_kore_ranei
    • [T]:: kua_whakaritea
    • [T]::kua_whakaritea_e
    • [T]::kua_whakaritea_ma_matua
    • Kaihuri:: is_sorted
    • Kaihuri:: kua_whakaritea_e
    • Kaituhi:: kua_whakaritea_ma_matua
    • std::future::Reri::i roto_inner
    • std::iter::repeat_n
    • impl DoubleEndedIterator mo Take

      Source: opennet.ru

Tāpiri i te kōrero