Rust 1.38 Siidaynta Luuqada Barnaamijaynta

la daabacay siidaynta luuqada programming-ka Miridhku 1.38, oo uu aasaasay mashruuca Mozilla. Luqadda waxay diiradda saartaa badbaadada xusuusta, waxay bixisaa maaraynta xusuusta oo toos ah, waxayna bixisaa hab lagu gaaro isbarbardhigga hawsha sare iyada oo aan la isticmaalin qashin ururiyaha ama wakhtiga shaqada.

Maareynta xusuusta tooska ah ee Rust's waxay ka xoraysaa horumariyaha wax-is-daba-marinta tilmaamayaasha waxayna ka ilaalisaa dhibaatooyinka ka dhasha khalkhalgelinta heerka hoose ee xusuusta, sida gelitaanka xusuusta bilaashka ah ka dib, tilmaame null ah, xad-dhaaf ah, iyo wixii la mid ah. Maamule xirmo ayaa la soo saarayaa si uu u qaybiyo maktabadaha, loo hubiyo isu-ururinta una maamulo ku-tiirsanaanta mashruuca. Cargo, taasoo kuu ogolaanaysa inaad hal mar gujiso ku hesho maktabadaha looga baahan yahay barnaamijka. Kaydka waxaa lagu taageeraa in lagu qabto maktabadaha sanduuqyada.io.

Main wax cusub:

  • Waxaa lagu daray qaab isku-dubbarid dhuumo leh, kaas oo dhisidda xirmo sanduuq ku-tiirsane ay bilaabato isla marka xogta badan ee ku-tiirsanaanta la helo, iyada oo aan la sugin diyaarinteeda si loo dhammaystiro. Marka la ururinayo xirmo, ku tiirsanaanta uma baahna in si buuxda la isugu keeno, kaliya qeexida xogta badan, oo ay ku jiraan liisaska noocyada, ku tiirsanaanta, iyo walxaha la dhoofiyo. Xogta badan waxay diyaar u tahay horraantii habka isu-ururinta, markaa baakadaha ku xidhan hadda waa la soo ururin karaa wakhti hore. Marka la dhisayo baakado keli ah, qaabka la soo jeediyay ma saameynayo waxqabadka, laakiin haddii dhismuhu uu daboolo baakadaha ku tiirsanaanta laanta, guud ahaan wakhtiga dhismaha waa la dhimi karaa 10-20%;
  • Waxay xaqiijisaa ogaanshaha isticmaalka khaldan ee hawlaha std::mem:: mid aan la aqoon ΠΈ std:: mem:: eber. Tusaale ahaan, std :: mem :: mid aan la aqoon ayaa ku habboon in si dhakhso ah loo abuuro qalabyo, laakiin waxay marin habaabisaa iskudubaridiyaha sababtoo ah waxay u muuqataa in la bilaabay, laakiin dhab ahaantii qiimaha ayaa weli ah mid aan la garanayn. Mem:: Shaqada aan la aqoon ayaa durbadiiba loo calaamadeeyay inay tahay mid meesha ka baxday waxaana lagu talinayaa in la isticmaalo nooc dhexdhexaad ah. MalahaUnit. Xagga mem :: eber, shaqadani waxay ku keeni kartaa dhibaatooyin noocyo aan aqbali karin qiimaha eber.

    Si loo garto dabeecadaha aan la qeexin, siideynta cusub waxay ku darsataa jeeg aan la garanayn isku-dubaridiyaha kaas oo ogaanaya dhibaatooyinka qaar ee mem :: mid aan la aqoon ama mem :: eber. Tusaale ahaan, hadda waxaad heleysaa qalad markaad isku dayeyso inaad isticmaasho mem :: mid aan la aqoon ama mem :: eber leh noocyo & T iyo Boxβ€ΉTβ€Ί, kuwaas oo u taagan shay tilmaame ah oo aan aqbali karin qiyamka null;

  • Sifada "#[la dhimay]" waa la balaariyay si loogu oggolaado baakadaha sanduuqyada in lagu calaamadiyo inay duugmeen oo loo qorsheeyay in mustaqbalka la tirtiro. Sida of Rust 1.38, sifadan waxa kale oo loo isticmaali karaa macro;
  • Lagu daray awoodda isticmaalka "#[global_allocator]" sifada ku jirta qaab-hoosaadyada;
  • Muuqaal lagu daray std:: mid kasta:: nooca_name, kaas oo kuu ogolaanaya inaad ogaato magaca nooca, kaas oo faa'iido u yeelan kara ujeedooyinka cilladaha. Tusaale ahaan, inta lagu guda jiro fulinta barnaamijka waxaad ogaan kartaa nooca shaqada loo yaqaan:

    fn gen_valueβ€ΉT: Default>() -β€Ί T {
    println!
    Default:: default()
    }

    fn main() {
    ha _: i32 = gen_value (); # "i32" waa la daabici doonaa
    ha _: Xarig = gen_value (); # waxay daabici doontaa "alloc:: xarig:: Xarig"
    }

  • Hawlaha la dheereeyey ee maktabadda caadiga ah:
    • jeex::{concat, connect, join} hadda qaadan kara qiimaha &[T] marka lagu daro &T;
    • "* const T" iyo "* mut T" hadda hirgeliyaan calaamadeeyaha :: Fur;
    • "Arcβ€Ή[T]β€Ί" iyo "Rcβ€Ή[T]β€Ί" hadda hirgeli FromIteratorβ€ΉTβ€Ί;
    • iter:: {StepBy, Peekable, Take} hadda hirgeli DoubleEndedIterator.
    • EscapeDefault waxay fulisaa Clone iyo Display.
  • Qayb cusub oo APIs ah ayaa loo wareejiyay qaybta xasilloon, oo ay ku jiraan hababka la xasiliyay
    • β€Ή*const Tβ€Ί:: tuur, β€Ή*mut Tβ€Ί::
    • Muddada:: as_secs_f{32|64},
    • Muddada:: div_duration_f{32|64},
    • Mudada::div_f{32|64},
    • Muddada:: From_secs_f{32|64},
    • Muddada::mul_f{32|64},
    • hawlaha qaybinta oo hadhaaga ah
      div_euclid iyo rem_euclid oo loogu talagalay dhammaan iskudhafyada asaasiga ah;

  • Maareeyaha xirmada xamuulku hadda waxa uu taageersan yahay qeexida "- sifooyinka" doorashada marar badan si loo suurtageliyo sifooyin kala duwan;
  • Isku-dubariduhu wuxuu bixiyaa saddex meelood meel heer Taageerada goobaha bartilmaameedka aarch64-uwp-windows-msvc, i686-uwp-windows-gnu, i686-uwp-windows-msvc, x86_64-uwp-windows-gnu, x86_64-uwp-windows-msvc bartilmaameedyada, armv7-unknown- -gnueabi, armv7-aan la garanayn-linux-musleabi, hexagon-aan la garanayn-linux-musl iyo riscv32i-aan la garanayn-none-elf. Heerka saddexaad wuxuu ku lug leeyahay taageerada aasaasiga ah, laakiin aan lahayn tijaabin toos ah iyo daabacaadda dhismayaasha rasmiga ah.

Source: opennet.ru

Add a comment