Rust 1.61 Whakaputa Reo Papatono

Ko te tukunga o te reo hootaka kaupapa whanui Rust 1.61, 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:

  • Ka taea te tautuhi i o ake waehere whakahoki mai i te mahi matua. I te tuatahi, ko te mahi matua a Rust ka taea anake te whakahoki momo "()" (wae), e tohu ana i nga wa katoa he mana putanga angitu mena ka kiia e te kaiwhakawhanake ko te mahi "tukanga::putanga(waehere)". I roto i te Rust 1.26, ma te whakamahi i te ahuatanga Whakamutua kore i roto i te mahi matua, ka taea te whakahoki i nga uara "Ok" me "Err", e pa ana ki nga waehere EXIT_SUCCESS me EXIT_FAILURE i nga kaupapa C. I roto i te Rust 1.61, kua whakapumautia te ahua Whakamutua, a kua tohua he momo Waehere Putatu motuhake hei tohu i tetahi waehere whakahoki motuhake, e tango ana i nga momo hokinga mai i te papaaapapa ma te whakarato i nga taumau kua tautuhia i mua i te WHAKAMAHI me te HAERE, me te tikanga Mai. ki te whakahoki i te waehere whakahoki ritenga. whakamahi std::process::ExitCode; fn matua() -> Waehere Puta { ki te !check_foo() { hoki mai Waehere Puta::mai i(8); } Waehere Putaatu:: SUCCESS }
  • Ko etahi atu kaha o nga mahi kua tautuhia ma te whakamahi i te kupu "const fn" kua whakapumautia, ka taea te kii ehara i te mea he mahi noa, engari ka whakamahia ano i roto i tetahi horopaki hei utu mo nga taumau. Ko enei mahinga ka tatauhia i te wa whakahiato, kaua i te wa whakahaere, na reira kei raro i etahi here, penei i te kaha ki te panui mai i nga taumau anake. I roto i te putanga hou, ka whakaaetia nga mahi taketake me nga tohu tohu mahi i roto i nga mahi const (ka whakaaetia te hanga, te tuku me te maka tohu tohu, engari kaua e karanga ma te tohu tohu); rohenga huanga mo nga tawhā whanui o nga mahi const penei i te T: Tārua; nga ahuatanga ka taea te tukuna (dyn Trait); impl Momo ahuatanga mo nga tautohe mahi me te whakahoki uara.
  • Ka mau te awa ki a Stdin, Stdout me Stderr i roto i te std::io inaianei he ora pateko ("'static") ina maukati, ka taea te hanga penei "tuku atu = std::io::stdout().lock();" me te tango i te kakau me te whakanoho raka ki te korero kotahi.
  • 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:
    • Pin::mutu_pateko
    • Pin::static_ref
    • Vec::retain_mut
    • VecDeque::retain_mut
    • Tuhia mo te Pehu<[u8; N]>
    • std::os::unix::net::SocketAddr::from_pathname
    • std::process::Waehere Putaatu
    • std::process::Whakamutua
    • std::miro::JoinHandle::kua_oti
  • 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:
    • <*const T>::offset and <*mut T>::offset
    • <*const T>::wrapping_offset and <*mut T>::wrapping_offset
    • <*const T>::apiri me <*mut T>::apiri
    • <*const T>::sub and <*mut T>::sub
    • <*const T>::wrapping_add and <*mut T>::wrapping_add
    • <*const T>::wrapping_sub and <*mut T>::wrapping_sub
    • <[T]>::as_mut_ptr
    • <[T]>::as_ptr_range
    • <[T]>::as_mut_ptr_range

I tua atu, ka taea e koe te tuhi i te tuhinga "Rust: A Critical Retrospective" me te whakarāpopototanga o nga ahuatanga o te reo Rust i muri i te tuhi i te 100 mano nga rarangi waehere i roto i te wa o te whakawhanaketanga o te punaha whakahaere microkernel Xous i whakamahia i roto i te firmware. Ko nga ngoikoretanga ko te wetereo uaua-ki-marama, te kore e oti me te whanaketanga tonu o te reo, te kore o te hanga tukurua, nga raruraru angamaheni me te whakawhirinaki whakawhirinaki ki a Crates.io, me te hiahia ki te pupuri i tetahi tikanga ki te tuhi i te waehere haumaru. Ko nga ahuatanga i nui ake i nga tumanako ko nga taputapu mo te refactoring waehere me te mahi ano i nga "hacks" ka taapirihia i te waa tere prototyping.

Source: opennet.ru

Tāpiri i te kōrero