Rust 1.39 Siidaynta Luuqada Barnaamijaynta

la daabacay siidaynta luuqada programming-ka Miridhku 1.39, 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:

  • La xasiliyay hab cusub oo asynchronous programming syntax oo ku salaysan shaqada "async", dhaqaaqa async {... } block, iyo hawlwadeenka ".wait", taas oo sahlaysa in la qoro maamulayaasha aan xannibin socodka amarka muhiimka ah. Marka la barbar dhigo API-gii hore ee loo bixiyay I/O asynchronous, asynchronous / .dhismaha sugitaanka waa sahlan tahay in la fahmo, si aad ah loo akhriyi karo, waxayna kuu ogolaanayaan inaad hirgeliso isdhexgalka asynchronous adag iyadoo la adeegsanayo farsamooyinka xakamaynta socodka la yaqaan ee ku salaysan wareegyada, bayaannada shuruudaha, iyo ka-reebista.

    Async-wait syntax wuxuu kuu oggolaanayaa inaad abuurto hawlo joojin kara fulintooda, ku soo celin kara xakamaynta dunta ugu weyn, ka dibna dib u bilaabista fulinta halkii ay ka tageen. Tusaale ahaan, hakad noocan oo kale ah ayaa loo baahan yahay marka la farsameynayo I/O, taas oo shaqo kale la qaban karo iyadoo la sugayo qaybta xigta ee xogta inay timaado. Hawlaha iyo baloogyada lagu qeexay "async fn" iyo "async move" waxay soo celiyaan sifo Future, kaas oo qeexaya matalaadda xisaabinta asynchronous dib loo dhigay. Waxaad si toos ah u bilaabi kartaa xisaabinta dib loo dhigay oo aad natiijada ku heli kartaa adiga oo isticmaalaya hawlwadeenka β€œ.sugidda”. Wax ficil ah lama sameeyo ama horay loo sii qorsheeyey ilaa .sugid la wacayo, taasoo u oggolaanaysa dhismayaal buul kakan in la sameeyo iyada oo aan wax dheeraad ah laga bixin.

    async fn first_function () -> u32 { .. }
    ...
    u ogolow mustaqbalka = first_function ();
    ...
    ha natiijado: u32 = mustaqbalka. sug;

  • La xasiliyay "#![feature(bind_by_move_pattern_guards)]", u oggolaanaya isticmaalka doorsoomayaal leh nooca xidhitaanka "dhaqaaqid" moodallo oo isticmaal tixraacyada doorsoomayaashan qaybta "if" ee odhaahda"ciyaarta" Tusaale ahaan, dhismayaasha soo socda ayaa hadda la oggol yahay:

    fn main() {
    ha soo diyaariyo: Sanduuqa<[u8; 4]> = Sanduuq :: cusub ([1, 2, 3, 4]);

    shaxda ciyaarta {
    nambarka
    haddi nambaro.iter().sum::() == 10

    => {
    dhibic (tiro);
    }
    _ => lama gaari karo!(),
    }
    }

  • Tilmaanta waa la oggol yahay sifooyinka marka la qeexayo halbeegyada shaqada, xidhitaannada, iyo tilmaamayaasha shaqada. Sifooyin isku-dubbarid shuruudaysan (cfg, cfg_attr) kuwaas oo ku xakameynaya ogaanshaha iyada oo loo marayo lint (oggow, u dige, diido iyo mamnuuc) iyo sifada yeedhista macro waa la taageeray.

    len (
    #[cfg(daaqadaha)] jeex: &[u16], // isticmaal cabbirka Windows
    #[cfg (ma aha (daaqadaha))] jarjar: &[u8], // u isticmaal OS kale
    ) -> isticmaal {
    jarjar.len()
    }

  • Digniinaha ku saabsan dhibaatooyinka la aqoonsaday marka la hubinayo amaahda doorsoomayaasha (amaahda hubinta) iyadoo la adeegsanayo farsamada NLL (Non-Lexical Lifetimes), turjumay galay qaybta khaladaadka dilaaga ah. Aynu dib u xasuusanno in nidaamka xaqiijinta ee ku salaysan hab cusub oo lagu xisaabtamayo cimriga doorsoomayaasha la amaahday ay suurtogelisay in la ogaado dhibaatooyinka qaarkood oo aan la dareemin xeerkii hore ee xaqiijinta. Maadaama khaladka ka soo baxa jeegaga noocaan ah uu saameyn ku yeelan karo laqabsiga koodka hore ee shaqada, digniinaha ayaa markii hore la soo saaray bedelkii khaladaadka. Digniinaha hadda waxaa lagu bedelay khaladaad markii ay ku socdaan qaabka Rust 2018. Siideynta soo socota, wax soo saarka qaladka ayaa sidoo kale lagu hirgelin doonaa qaabka Rust 2015, kaas oo ugu dambeyntii ka takhalusi doona jeeggii hore ee amaahda;
  • Sifada "const", taas oo go'aamisa suurtagalnimada in loo isticmaalo xaalad kasta halkii laga isticmaali lahaa, waxaa loo isticmaalaa hawlaha Vec :: cusub, String :: cusub, LinkedList :: cusub, str :: len, [T] :: len , str :: as_bytes,
    abs, duubid_abs iyo qulqul_abs;

  • Qayb cusub oo APIs ah ayaa loo wareejiyay qaybta xasilloon, oo ay ku jiraan hababka la xasiliyay
    Pin :: gudaha_gudaha, Islamarkaba::la hubiyay muddada_ilaa iyo isla markiiba::

  • Maareeyaha xirmada xamuulka ayaa hadda awood u leh inuu isticmaalo kordhinta ".toml" ee faylasha qaabeynta. Waxaa lagu daray taageero horudhac ah oo lagu dhisayo maktabadda caadiga ah si toos ah Cargo. Lagu daray calankii "--workspace", oo beddelay calankii "--dhan" ee muranka dhaliyay. Goob cusub ayaa lagu daray xogta badan"daabacaan", kaas oo kuu ogolaanaya inaad daabacdo ku-tiirsanaanta adoo qeexaya git tag iyo lambarka nooca. Xulashada tijaabada ee lagu daray "-Ztimings" si loo soo saaro warbixinta HTML ee waqtiyada fulinta ee heerar kala duwan oo isku dubarid ah.
  • Isku-duwaha rustc, fariimaha ogaanshaha waxa ka mid ah jarista dabada koodka ee aan ku haboonayn terminaalka. La siiyay heerka saddexaad ee taageerada goobaha la beegsanayo
    i686-aan la garanayn-uefi iyo sparc64-aan la garanayn-openbsd. 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