Rust 1.61 Famoahana ny fiteny fandaharana

Navoaka ny fiteny fandaharana Rust 1.61 amin'ny tanjona ankapobeny, naorin'ny tetikasa Mozilla saingy novolavolaina ankehitriny eo ambany fiahian'ny fikambanana tsy miankina Rust Foundation. Mifantoka amin'ny fiarovana ny fitadidiana ilay fiteny ary manome fitaovana ahafahana manatratra ny fitovian'ny asa avo lenta sady misoroka ny fampiasana mpanangom-pako sy ny fotoana fandehanana (ahena ny fotoana fampandehanana amin'ny fanombohana fototra sy fikojakojana ny tranomboky mahazatra).

Ny fomba fitantanana fitadidian'i Rust dia mamonjy ny mpamorona amin'ny hadisoana rehefa manodinkodina ny tondro ary miaro amin'ny olana mipoitra noho ny fikarakarana fitadidiana ambany, toy ny fidirana amin'ny faritra fitadidiana rehefa afaka izany, ny fanafoanana ireo tondro tsy misy dikany, ny fihoaran'ny buffer, sns. Mba hizarana trano famakiam-boky, manome fananganana ary mitantana ny fiankinan-doha, ny tetikasa dia mamolavola ny mpitantana fonosana Cargo. Ny tahiry crates.io dia tohanana amin'ny fampiantranoana tranomboky.

Ny fiarovana ny fitadidiana dia omena ao amin'ny Rust amin'ny fotoana fanangonana amin'ny alΓ lan'ny fanamarinana reference, ny fanaraha-maso ny fananana zavatra, ny fanaraha-maso ny androm-piainan'ny zavatra (scopes), ary ny fanombanana ny fahamarinan'ny fidirana fahatsiarovana mandritra ny famonoana ny code. Ny Rust koa dia manome fiarovana amin'ny fihoaran'ny integer, mitaky fanombohana tsy maintsy atao ny soatoavina miovaova alohan'ny fampiasana, mitantana ny lesoka tsara kokoa ao amin'ny tranomboky mahazatra, mampihatra ny foto-kevitry ny references sy ny variables tsy miova amin'ny alΓ lan'ny default, manolotra fanoratana static mahery mba hampihenana ny fahadisoana lojika.

Fanavaozana lehibe:

  • Azo atao ny mamaritra ny kaody fiverenanao manokana avy amin'ny asa fototra. Tany am-boalohany, ny asan'ny Rust dia tsy afaka mamerina afa-tsy karazana "()" (fikambanana), izay manondro foana ny sata fivoahana mahomby raha tsy hoe ny mpamorona dia niantso mazava ny asa "process::exit(code)". Ao amin'ny Rust 1.26, amin'ny fampiasana ny toetran'ny Fampitsaharana tsy miorina amin'ny asa lehibe, dia azo atao ny mamerina ny soatoavina "Ok" sy "Err", mifanaraka amin'ny EXIT_SUCCESS sy EXIT_FAILURE code amin'ny programa C. Ao amin'ny Rust 1.61, ny toetran'ny Famaranana dia natao stable, ary karazana ExitCode mitokana no natolotra mba hisolo tena kaody fiverenana manokana, izay manaisotra ny karazana fiverenana manokana amin'ny sehatra amin'ny alΓ lan'ny fanomezana ny tsy tapaka efa voafaritra mialoha FAHOMBIAZANA sy FAILURE, ary ny fomba Avy hamerenana kaody fiverenana mahazatra. mampiasa std::process::ExitCode; fn main() -> ExitCode {raha !check_foo() { miverina ExitCode::avy(8); } Kaody fivoahana :: FAHOMBIAZANA }
  • Ny fahaiza-manao fanampiny amin'ny asa voafaritra amin'ny fampiasana ny teny hoe "const fn" dia niorina, izay azo antsoina tsy ho toy ny fiasa mahazatra, fa ampiasaina amin'ny toe-javatra rehetra fa tsy constants. Ireo fiasa ireo dia kajy amin'ny fotoana fanangonana, fa tsy amin'ny fotoana fampandehanana, noho izany dia iharan'ny fameperana sasany, toy ny fahafahana mamaky afa-tsy amin'ny tsy miova. Ao amin'ny dikan-teny vaovao, ny asa fototra miaraka amin'ny tondro fiasa dia avela ao anatin'ny const functions (mamorona, mandalo ary mamoaka tondro, fa tsy miantso asa amin'ny pointer); fetran'ny toetra ho an'ny marimaritra iraisana amin'ny fiasa const toy ny T: Copy; toetra azo alefa dynamically (dyn Trait); impl Karazana toetra ho an'ny tohan-kevitra momba ny asa sy ny sanda miverina.
  • Ny stream dia mitantana Stdin, Stdout ary Stderr ao amin'ny std::io dia manana androm-piainana static ("'static") rehefa mihidy, mamela ny fananganana toy ny "avelao = std::io::stdout().lock();" miaraka amin'ny fahazoana tΓ nana sy fametrahana hidy amin'ny fomba fiteny iray.
  • Ny ampahany vaovao amin'ny API dia nafindra ho amin'ny sokajy stable, ao anatin'izany ny fomba sy ny fampiharana ny toetra efa niorina:
    • Pin::static_mut
    • Pin::static_ref
    • Vec::retain_mut
    • VecDeque::retain_mut
    • Manorata ho an'ny Cursor<[u8; N]>
    • std::os::unix::net::SocketAddr::from_pathname
    • std::process::ExitCode
    • std::process::Famaranana
    • std::thread::JoinHandle::dia_vita
  • Ny toetra "const", izay mamaritra ny mety hampiasana azy amin'ny toe-javatra rehetra fa tsy constants, dia ampiasaina amin'ny fiasa:
    • <*const T>::offset ary <*mut T>::offset
    • <*const T>::wrapping_offset ary <*mut T>::wrapping_offset
    • <*const T>::add sy <*mut T>::add
    • <*const T>::sub sy <*mut T>::sub
    • <*const T>::wrapping_add ary <*mut T>::wrapping_add
    • <*const T>::wrapping_sub sy <*mut T>::wrapping_sub
    • <[T]>::as_mut_ptr
    • <[T]>::as_ptr_range
    • <[T]>::as_mut_ptr_range

Fanampin'izany, azonao atao ny manamarika ny lahatsoratra "Rust: Retrospective Critical" miaraka amin'ny famintinana ny fahatsapana ny fiteny Rust rehefa avy nanoratra andalana 100 arivo ao anatiny nandritra ny fampivoarana ny rafitra fiasan'ny microkernel Xous ampiasaina amin'ny firmware. Ny tsy fahampiana dia ahitana ny syntax sarotra takarina, ny tsy fahafenoan'ny fiteny ary ny fitohizan'ny fampandrosoana ny fiteny, ny tsy fisian'ny fananganana azo averina, ny olana mahazatra amin'ny fiankinan-doha amin'ny Crates.io, ary ny filΓ na fitazonana fitsipi-pifehezana sasany hanoratana kaody azo antoka. Ny endri-javatra mihoatra ny nantenaina dia ahitana fitaovana hamerenana ny kaody sy ny famerenana ny "hacks" nampiana nandritra ny prototyping haingana.

Source: opennet.ru

Add a comment