I-Rust Tutorial: Ukuphepha Kwenkumbulo kanye Nemali Evumelanayo

Isibuyekezo sokugcina: 04/12/2025
Author: Isaka
  • Ukugqwala kuqinisekisa ukuphepha kwenkumbulo ekuhlanganisweni ngobunikazi, ukuboleka, kanye nempilo yonke, ngaphandle kokusebenzisa ukuqoqwa kukadoti.
  • Isistimu yohlobo nemithetho yokuqamba igama ivumela ukuvumelana ngaphandle kwemijaho yedatha kusetshenziswa izimungulu, amashaneli, nezikhombi ezihlakaniphile.
  • I-Cargo, i-crates.io, kanye ne-ecosystem esebenzayo yenza kube lula ukuphatha ukuncika, ukuhlanganisa, ukuhlola, nokusatshalaliswa.
  • Ukuqonda izakhiwo, ama-enum, Inketho, kanye Nomphumela kuyisihluthulelo sokuphatha amaphutha nokumodela idatha ephephile ezinhlelweni zokusebenza ngesikhathi esisodwa.

C Ulimi lohlelo vs Ukugqwala: izinzuzo kanye nokubi

Ukugqwala sekube ngolunye lwalezo zilimi Wonke umthuthukisi wezinhlelo ugcina ekuzwa kaningi.Ishesha njengo-C no-C++, kodwa ngokugxila okucishe kugxile ekuphepheni kwenkumbulo nokuvumelana okwenziwe kahle. Lokhu akukhona nje ukumaketha okungenalutho: ukwakheka kwakho kuzungeza amaphutha okuthola umhlanganisi ngesikhathi sokuhlanganiswa—amaphutha owabona ngezinye izilimi kuphela uma uhlelo seluvele luyakhiqizwa… noma uma luphahlazeka.

Uma unesifiso sokuqonda I-Rust ifinyelela kanjani inkumbulo ephephile ngaphandle kokuqoqwa kukadoti nokuvumelana ngaphandle kokwesaba ukusetshenziswa kwedathaLesi sifundo esakho. Sizofaka yonke into kusukela kokubalulekile kolimi kanye ne-ecosystem yalo kuya emicabangweni ebalulekile njengobunikazi, ukuboleka, izinhlobo ezihlanganisiwe, amathuluzi afana ne-Cargo, futhi sibheke izinhlobo ze-athomu nokukhiya kusukela kumbono ofinyeleleka kakhudlwana kulabo abasha ukuze bavumelane, konke ngokugxila ekuvikelekeni nokusebenza.

I-Rust Tutorial: Ukusebenza, Ukuphepha Kwenkumbulo, kanye ne-Concurrency

Ukugqwala kuwulimi lokuhlela uhlelo inhloso ejwayelekile kanye ne-multi-paradigm, eyenzelwe izinhlelo zezinga eliphansi kanye namaphrojekthi asezingeni eliphezulukusuka izinhlelo ezisebenzayoKusukela ezinjinini zegeyimu neziphequluli kuya kumasevisi ewebhu asebenza kahle kakhulu, iqale ku-Mozilla ngenhloso yokuthuthukisa ukuphepha kwesofthiwe, ikakhulukazi ezingxenyeni ezibucayi njengenjini yesiphequluli.

Isici sayo esichazayo ukuthi iqinisekisa ukuphepha kwenkumbulo ngesikhathi sokuhlanganisa ngaphandle kokusebenzisa umqoqi wezibi. Kunalokho, iRust isebenzisa isistimu yobunikazi kanye nesihloli sokuboleka esilandelela isikhathi sokuphila senani ngalinye nezithenjwa zalo. Lokhu kugwema izinkinga zakudala njengezikhombi ezilengayo, ukuchichima kwebhafa, noma ukuvuza kwenkumbulo ngaphandle kokudinga ukubala kwereferensi okuzenzakalelayo noma ukuqoqwa kukadoti.

Ngaphezu kwalokho, i-Rust yakhelwe ukwenza kube lula ukuvumelana okuphephileUhlobo lwayo kanye nemodeli yobunikazi ivimbela izinhlanga zedatha phakathi kochungechunge, okungenani ngenkathi isele kukhodi yokugqwala ephephile. Lokhu kusho ukuthi izimo eziningi eziyingozi zitholwa ngesikhathi sokuhlanganiswa, ngaphambi kokuthi kukhishwe umugqa owodwa.

Kuzo zonke lezi zizathu, izinkampani ezinkulu zithanda I-Dropbox, iMicrosoft, i-Amazon noma -Google Bamukele i-Rust ezingxenyeni ezibalulekile zengqalasizinda yabo. Futhi akukhona ukuqondana nje ukuthi idlulele phambili eminyakeni eminingi yokuvota kokuchichima kwe-Stack njengolunye lwezilimi "ezithandwa kakhulu" ngabathuthukisi: ihlanganisa ukusebenza kwesitayela se-C++ ne-toolset yesimanje (Cargo, crates.io) kanye nomphakathi okhuthele kakhulu, labo ababizwa ngokuthi amaRustaceans.

Imiqondo eyisisekelo: ulimi lokuhlela, izinhlobo kanye nenkumbulo

Ngaphambi kokungena emininingwaneni yokuphepha kwenkumbulo nokuvumelana, kufanelekile ukucacisa imiqondo ethile ejwayelekile evela kuyo yonke indawo. el tiempo Lapho usebenza ne-Rust, ikakhulukazi uma uvela kwezinye izilimi noma usaqala ukuhlela.

Ulimi lokuhlela, ekugcineni, isethi yemithetho nezakhiwo ezikuvumela ukuthi uchaze ama-algorithms futhi uziguqule zibe izinhlelo ezisebenzisekayo. Ukugqwala kuhlanganisa kukhodi yomshini womdabu kusetshenziswa umdidiyeli wawo rustcNgakho-ke, ukusebenza okutholayo kuvame ukuhambisana no-C no-C++.

Ukuphathwa kwememori kuyinqubo lapho uhlelo igcina futhi ikhiphe amabhlogo ememori ngenkathi isebenzaAmaphutha kule ndawo avame ukubulala: ukuvuza kwenkumbulo (ukuhluleka ukukhulula inkumbulo engasetshenziswa), ukonakala kwedatha ekubhaleni okungaphandle kwemingcele, noma ukusebenzisa inkumbulo ngemva kokuba isikhululiwe. I-Rust ibhekana nalokhu ngesistimu yohlobo oluqinile nemithetho esemthethweni yobunikazi, ukuboleka, nempilo yokuphila.

I-Rust ibuye ibe namagama afana nalawa izinhlobo ezihlakaniphile nezikhombisiUhlobo luchaza ukuthi hlobo luni lwedatha izitolo eziguquguqukayo (izinombolo eziphelele, ezintantayo, izintambo, izakhiwo, njll.) kanye nendlela engasetshenziswa ngayo. Izinkomba ezihlakaniphile (isibonelo, Box, Rc y Arc) ziyizakhiwo ezihlanganisa amakheli enkumbulo futhi zengeze ukucabanga okunengqondo okwengeziwe ukuze ulawule izinsiza ngokuphepha, njengokubala izithenjwa ezabiwe noma ukuhambisa amanani enqwabeni.

Emkhakheni wokuncintisana, imiqondo efana ne izimo zomjaho, izimungulu, namashaneli Ziba semqoka: isimo somjaho senzeka lapho imicu eminingi ifinyelela futhi iguqula insiza okwabelwana ngayo ngesikhathi esisodwa ngaphandle kokuxhumana okufanele; i-mutex (ukukhishwa okuhlangene) iqinisekisa ukuthi intambo eyodwa kuphela engena esigabeni esibucayi ngesikhathi; namashaneli avumela ukuthi imilayezo ithunyelwe phakathi kwemicu ngaphandle kokwabelana ngenkumbulo ngokuqondile.

Kungani ufunde Ukugqwala: Ukuphepha kwenkumbulo kanye nokuvumelana okungesabi

Ukugqwala kuzuze udumo lwayo ngoba kuyanikeza izinsika ezintathu ezibaluleke kakhulu ezinhlelweni zesimanjeUkusebenza, ukuphepha, namathuluzi amanje. Ake sibone ukuthi kungani la maphuzu ebaluleke kangaka.

Mayelana nokusebenza, Rust ihlanganisa ngokuqondile kunambambili bomdabu ngaphandle kwesidingo somshini obonakalayo noma umhumushi. Imodeli ye-zero-cost abstractions ihlose ukuqinisekisa ukuthi ama-abstractions asezingeni eliphezulu awangezi ngaphezulu ngesikhathi sokusebenza. Ngakho-ke, ilungele ukuthuthukiswa kwezinhlelo. imidlalo yevidiyo, izingxenye zesiphequluli noma ama-microservices angabambeki kancane.

Ukuphepha kwememori kusekelwe kukho ubunikazi kanye nohlelo lwemalimbolekoAkekho umqoqi kadoti, kodwa umdidiyeli wazi kahle ukuthi ubani ophethe insiza ngayinye, lapho ingasadingeki, nokuthi ingakhululwa nini. Lokhu kuvimbela ukuvuza, izinkomba ezilengayo, kanye namaphutha amaningi abejwayele ukwenza uhlelo lwe-C ne-C++ lube yingozi kakhulu.

Endaweni yokuncintisana, i-Rust iphishekela lokho okuvame ukubizwa "concurrency without fear"Isistimu yohlobo ngokwayo ivimbela izimpande zedatha kusukela ezikhona kukhodi evikelekile. Uma ufuna ukwabelana ngedatha eguquguqukayo phakathi kochungechunge, uzodinga ukusebenzisa ama-primitive afanelekile njengokuthi Mutex, RwLock o Arc, futhi umhlanganisi uzoqinisekisa ukuthi imithetho yokuqamba igama kanye nokuguquguquka iyahlonishwa.

  Ungayibulala kanjani amagciwane eWindows ngeMalwarebytes igxathu negxathu

Okuhlangenwe nakho kokuthuthukiswa kuthuthukiswa ngamathuluzi esimanje afana cargoIhlanganisa umphathi wephakheji edidiyelwe kanye nengqalasizinda yokwakha, kanye nesimiso esibanzi semitapo yolwazi (amakhreyithi) ahlanganisa yonke into kusukela kunethiwekhi ye-asynchronous (Tokyo) kuya kuzinhlaka zewebhu (Actix, Rocket, Axum). Konke lokhu kusekelwa umphakathi ovulekile, owandile, futhi onesineke, ikakhulukazi kwabaqalayo.

Ukufakwa namathuluzi abalulekile: i-rustup, i-rustc ne-Cargo

Ukubhala nokusebenzisa izinhlelo zakho zokuqala ku-Rust, into evamile ongayenza ukuqala ngokufaka i-toolchain esemthethweni usebenzisa ukugqwala (bona i Qedela isingeniso se-Rust), isifaki esilula nomphathi wenguqulo osebenza kuwo wonke amasistimu wokusebenza amakhulu.

cunt ukugqwala Ungafaka, ubuyekeze, futhi ushintshe phakathi kwezinguqulo ezihlukene ze-Rust (ezinzile, i-beta, ebusuku) ngaphandle kokwephula noma yini. Vele uye ekhasini elisemthethweni lamathuluzi e-Rust bese ulandela izinyathelo zesistimu yakho. Uma isifakiwe, i-compiler izotholakala. rustc, umphathi wephrojekthi cargo nezakhe rustup kokwakho Isikhumulo.

umdidiyeli rustc Yilokho okuguqula ikhodi yakho yomthombo ibe okuhamba ngakubili noma amalabhulali asebenzisekayo. Nakuba ungayicela ngokuqondile imiyalo njengoba rustc main.rsEmpeleni, cishe uzosebenza njalo nge-Cargo, ephethe izingcingo kuzo rustc ngezinketho ezifanele.

Ithuluzi elimaphakathi lokuhamba komsebenzi ngu cargoNgemiyalo embalwa nje, ungakha amaphrojekthi amasha, uphathe okuncikile, uhlanganise, uqalise, uhlole, futhi ushicilele amaphakheji ku-crates.io. Eminye imiyalo eyisisekelo evame ukusetshenziswa yilena: cargo new, cargo build, cargo run, cargo test y cargo check, ehlola ikhodi ngaphandle kokukhiqiza okokugcina okusebenzisekayo, ilungele ukuthola amaphutha ngokushesha.

Uma ufuna ukucwilisa ngaphandle kokufaka noma yini, I-Rust Playground (umabi osemthethweni waku-inthanethi) nezinkundla ezifana ne-Replit zikuvumela ukuthi ubhale futhi usebenzise izingcezu ezincane zekhodi kusuka kusiphequluli, ezilungele ukuhlola inkumbulo nezibonelo zokuvumelana ngaphandle kokusetha indawo yonke.

Uhlelo lwakho lokuqala: Sawubona, Rust, nokugeleza okuyisisekelo

Indlela yakudala yokuqala ingxoxo nganoma yiluphi ulimi ingowomculo odumile othi "Sawubona, mhlaba." Ku-Rust, ifayela main.rs okungenani ingaqukatha into elula njengomsebenzi main ephrinta umucu esikrinini.

Igama elingukhiye fn kubonisa ukuthi sichaza umsebenzi, futhi main Lena indawo yokungena yohlelo. Ibhulokhi yekhodi yomsebenzi ingena phakathi kwezikaki ezigoqekile. Ukuze ubhalele ikhonsoli, sebenzisa i macro println!, eyamukela iyunithi yezinhlamvu engokoqobo (noma isifanekiso esinamabhukhimakhi) futhi iyithumele kokuphumayo okujwayelekile okugcina ngohlamvu olusha.

Uma uhlanganisa ngqo ne rustc main.rs, uzothola kanambambili osebenzisekayo (isibonelo, main o main.exe (kuya ngohlelo). Uma uyiqhuba, uzobona umlayezo kutheminali. Kodwa indlela ewumshoshaphansi yokusebenzisana noRust ukuvumela iCargo ukuthi ihole kulo msebenzi.

cunt cargo new nombre_proyecto Isakhiwo sefolda sidalwa ngokuzenzakalelayo nge- src/main.rs osekulungiswe ngokuthi "Sawubona, mhlaba" kanye nefayela Cargo.toml equkethe imethadatha nokuncika kwesikhathi esizayo. Kusukela lapho, cargo run hlanganisa bese usebenzisa kanambambilifuthi ihlanganisa kuphela uma ithola izinguquko.

Le ndlela yokusebenza ayilula nje kuphela, kodwa ikwenza ujwayele ukusebenzisa i-Rust ecosystem ejwayelekile kusukela ekuqaleni, ewusizo kakhulu uma uqala ukungeza amakhreyithi okuvumelanisa, ukuxhumana, ukuhlola, nanoma yini oyidingayo.

// Simemezela umsebenzi oyinhloko: indawo yokungena yohlelo fn main() {// Sisebenzisa i-println! macro ukuze uphrinte umbhalo ku-console println!("Sawubona, mhlaba!"); }

Okuguquguqukayo, ukuguquguquka, nezinhlobo zedatha eziyisisekelo

Ku-Rust, okuguquguqukayo kumenyezelwa ngegama elingukhiye let, futhi ngokuzenzakalelayo aziguqulekiNgamanye amazwi, uma usuwanikeze inani, awukwazi ukulishintsha ngaphandle uma ulibeka ngokucacile njengokuguquguquka mut.

Ukungaguquki ngokuzenzakalelayo kusiza ukugwema amaphutha engqondo acashile, ikakhulukazi ezinhlelweni ezihambisanayo lapho imicu eminingi ingase ifune ukushintsha inani elifanayo. Uma udinga ukuyishintsha, ubhala into efana nale let mut contador = 0;Ukusuka lapho ungabela kabusha amanani amasha kuye contador.

Ukugqwala futhi ivumela okuthiwa ithunziUngakwazi ukumemezela okuguquguqukayo okusha okunegama elifanayo ngaphakathi kwesikophu esifanayo, ufihle elangaphambili. Lokhu akufani nokushintshashintsha, ngoba udala inani elisha (elingaba ngisho nohlobo oluhlukile). Isibonelo, ungakwazi ukuguqula usuke ochungechungeni uye enambeni ephelele usebenzisa igama elifanayo, inqobo nje uma kuyisimemezelo esisha nge let.

Isistimu yohlobo lwe-Rust imile, okusho ukuthi Uhlobo lokuguquguquka ngakunye lwaziwa lapho kuhlanganiswaKodwa-ke, uhlobo lwe-inference lunamandla impela: uma ubhala let x = 5;Umdidiyeli uthatha ngokuthi yi-a i32 Ngaphandle uma usho ngenye indlela. Ungakwazi ukwengeza amanothi afana let x: i64 = 5; lapho ufuna ukuba sobala.

Phakathi kwezinhlobo ze-scalar ezitholakalayo kukhona izinombolo ezisayiniwe nezingabhalisiwe (i8, u8, i32, njll.), ezintantayo (f32, f64), amaBhunu (bool) kanye nezinhlamvu ze-Unicode (char). Lezi zinhlobo ezilula ngokuvamile zishibhile ukuzikopisha futhi eziningi zisebenzisa isici Copyokusho ukuthi uma uwabela noma uwadlulisela kumsebenzi othile, ayakopishwa esikhundleni sokuhanjiswa.

Izintambo ku-Rust: &str ne-String

Ukuphatha umbhalo kokuthi Rust kungase kudide kancane ekuqaleni ngoba kuhlukanisa ngokucacile phakathi iketango "izingcezu" namaketango okuphatheleneIzingcezu ezimbili ezibalulekile &str y String.

Un &str Kuyinto a ucezu lweketango olungaguqukiUkubuka kokulandelana kwebhayithi ye-UTF-8 egcinwe ndawana thize. Izibonelo ezijwayelekile zifaka phakathi amagama afana namagama "Hola"okuyizinto zohlobo &'static str (Zikhona impilo yonke yohlelo futhi zishumekwe komambambili.) Izingcezu azizona idatha; bakhomba kona kuphela.

  Ungayenza kanjani ngokwezifiso ibha yomsebenzi ku-Windows 11: Gcwalisa umhlahlandlela namathiphu athuthukile

String, ngakolunye uhlangothi, u-a intambo, eguquguqukayo futhi isingathwe kunqwabaIngashintshwa usayizi, ihlanganiswe, idluliswe phakathi kwemisebenzi ngokuhambisa impahla yayo, njll. Ivame ukusetshenziswa uma ufuna ukwakha umbhalo oguquguqukayo noma ukuwugcina isikhathi eside ngaphakathi kwezakhiwo.

Ezimweni eziningi uzoguqula phakathi kokukodwa nokunye: isibonelo, uzodala i String::from("hola") kusuka ocezwininoma uzoboleka a &str of a String ngokudlulisa izinkomba zemisebenzi edinga ukufundwa kuphela.

Lokhu kwehlukaniswa phakathi kwedatha ephethwe kanye nebolekiwe kuyisihluthulelo sokuphathwa kwenkumbulo futhi kudlulela kulo lonke ulimi: amaqoqo, izakhiwo, nama-enum alandela imibono efanayo yokuthi ubani umnikazi nokuthi ubani obukeka kuphela.

Imisebenzi, lawula ukugeleza, namazwana

Imisebenzi ku-Rust ichazwa ngokuthi fn futhi uvumele uhlelo ukuthi luhlelwe lube amayunithi anengqondo asebenzisekayo. Umsebenzi ngamunye uyacacisa uhlobo lwamapharamitha alo kanye nohlobo lwayo lokubuya kulandela umcibisholo ->Uma ingabuyisi lutho oluzwakalayo, uhlobo olulodwa luyathathwa. ().

Imininingwane ebalulekile ukuthi isisho sokugcina kumsebenzi (noma noma isiphi ibhulokhi) esingenayo isemikholoni sithathwa njengenani lokubuyisela elingacacile. Ungasebenzisa return ukuze uthole ukubuya kwangaphambi kwesikhathiKodwa ngekhodi ye-idiomatic, uvame ukushiya inkulumo yokugcina ngaphandle. ;.

Ukugeleza kokulawula kuphathwa ngezakudala if/elseizihibe loop, while y forE-Rust, if Kuyinkulumo ebuyisela inaniukuze ukwazi ukuyisebenzisa ngokuqondile ku-a letinqobo nje uma amagatsha ebuyisela uhlobo olufanayo. Amaluphu for Ngokuvamile ziphindaphinda phezu kobubanzi noma iziphindi zeqoqo futhi ziyinketho enconyiwe esikhundleni sezinkomba ezenziwa ngesandla.

Ukuze ubhale ikhodi futhi wenze ukuphila kube lula kunoma ubani oza ngemva kwalokho (kuhlanganise nawe ngenyanga), ungasebenzisa layini amazwana nge // noma vimba nge /* ... */Ngaphezu kwalokho, i-Rust inikeza amazwana amadokhumenti nge /// okuba imibhalo ekhiqiziwe, nakuba lokho kufanelana kakhulu namaphrojekthi amakhulu.

Ubunikazi, ukuboleka, kanye nempilo yonke: isisekelo sokuphepha kwenkumbulo

Lapha sifika enhliziyweni yemodeli yenkumbulo kaRust: uhlelo lwe ubunikazi, ukuboleka, kanye nempilo yonkeLe mithetho iqinisekisa ukuthi izinkomba zihlala zivumelekile nokuthi inkumbulo ikhishwa ngokuphephile ngaphandle kukadoti onqwabelene.

Imithetho eyisisekelo yobunikazi ilula ukusho, nakuba kungase kube nzima ukuyifaka ngaphakathi ekuqaleni: Inani ngalinye linomnikazi oyedwa.Kungaba nomnikazi oyedwa kuphela ngesikhathi; futhi lapho umnikazi eshiya ububanzi bayo, inani liyabhujiswa futhi inkumbulo yalo iyakhululwa. Lokhu kusebenza, isibonelo, ku-a String: lapho kuqedwa ibhulokhi lapho imenyezelwe khona, icelwa ngokuzenzakalelayo drop okukhulula inkumbulo yenqwaba.

Uma wabela inani elifanele kokunye okuguquguqukayo noma ukudlulisa inani kumsebenzi othile, isakhiwo siyasuswa. Lokhu kusho ukuthi okuguquguqukayo kwasekuqaleni kuyayeka ukusebenza ngemva kokunyakazaLe semantics yokunyakaza igwema ukukhishwa okuphindwe kabili, ngoba abekho abanikazi ababili abazama ukukhipha insiza efanayo.

Ukuvumela izingxenye eziningi zohlelo ukuthi zifinyelele inani elifanayo ngaphandle kokushintsha ubunikazi, i-Rust yethula izinkomba nokuboleka. Uma uboleka, udala ireferensi &T (engaguquki) noma &mut T (eguquguqukayo) enanini ngaphandle kokudlulisa ubunikazi. Imali mboleko ikhawulelwe yimithetho yomqinisekisi wemalimboleko., okuhlola ukuthi izithenjwa aziphili kudatha ezikhomba kuyo nokuthi ukufinyelela okushintshashintshayo nokwabiwayo akuxubene ngokuyingozi.

Imithetho yemalimboleko ingafinyezwa kanje: nganoma yisiphi isikhathi, ungaba nayo izinkomba eziningi ezingaguquleki kunani, noma ireferensi eyodwa eguqulekayoKodwa hhayi kokubili ngesikhathi esisodwa. Lokhu kuqeda izimo zomjaho enkumbulweni eyabiwe: kungaba abafundi abaningi, noma kunombhali oyedwa; ungalokothi abafundi kanye nababhali ngesikhathi esifanayo idatha efanayo ngesikhathi esifanayo.

Izinhlobo ezihlanganisiwe: ama-structs, ama-enums, nezikhombi ezihlakaniphile

I-Rust inikeza izindlela ezimbalwa zokuqoqa idatha ehlobene ibe izakhiwo ezicebile, kuqala nge izakhiwoIsakhiwo sikuvumela ukuthi uchaze uhlobo ngokwezifiso olunezinkambu eziqanjwe igama, isibonelo umsebenzisi one-imeyili, igama, isimo somsebenzi kanye nekhawunta yokungena ngemvume.

Ukuze udale isibonelo sesakhiwo, ugcwalisa zonke izinkambu zaso, futhi ungamaka okuguquguqukayo okuqukethe njengokuguquguqukayo ukuze ulungise amanani ayo kamuva. Kukhona ne-syntax ye-struct update, ekuvumela ukuthi wakhe isenzakalo esisha ngokusebenzisa kabusha izinkambu ezithile kusukela kwekhona kakade. ..otro_struct.

I-Los enum Zingenye insika ebalulekile: zikuvumela ukuthi uchaze uhlobo olungase lube okuhlukile okuningana okungenzeka, ngayinye enedatha yayo ehlotshaniswayo noma ngaphandle kwayo. Isibonelo sakudala i-enum yamakheli e-IP, enokuhluka okukodwa V4 egcina ama-octet amane nenye V6 egcina iyunithi yezinhlamvu ene-IPv6 notation.

Umtapo wezincwadi ojwayelekile we-Rust uhlanganisa ama-enum amabili abaluleke kakhulu: Option<T> y Result<T, E>Eyokuqala imele ukuba khona noma ukungabikho kwevelu (into ethile noma lutho), futhi isetshenziselwa ukugwema izinkomba ezingenalutho; amamodeli wesibili imisebenzi engakwazi buyisela umphumela olungile noma iphutha, edinga ukuthi ukuphathwa kwephutha kube sobala futhi kuvikeleke.

Ukuze ulawule inkumbulo eguquguqukayo futhi wabelane ngedatha, iRust ine izikhombisi ezihlakaniphile njengoba Box<T>, ehambisa inani enqwabeni futhi igcine ubunikazi obuyingqayizivele; Rc<T>, isibalo sereferensi esabiwe sezindawo ezinochungechunge olulodwa; futhi Arc<T>, kufana Rc kodwa iphephile emicu eminingi. Ukuzisebenzisa ngendlela efanele kubalulekile uma uhlanganisa inkumbulo eguquguqukayo ne-concurrency.

I-Cargo kanye ne-Crates Ecosystem

I-Cargo ingcina ebamba i-Rust ecosystem ndawonye: iphethe ukuhlanganiswa, ukuncika, kanye nomjikelezo wempilo wephrojekthiIphrojekthi ngayinye inefayela Cargo.toml esebenza njenge-manifest, ememezela igama, inguqulo, uhlelo lolimi, nokuncika kwangaphandle.

  Kulungisiwe: Windows 10 Iphutha Lomshayeli Webhasi le-PCI Yangaphakathi

Isigaba Leli fayela likuvumela ukuthi ufake kuhlu amakhreyithi ezinkampani zangaphandle nezinguqulo zawo. Uma ugijima cargo build o cargo runI-Cargo ilanda ngokuzenzakalelayo lawa makhreyithi ku-crates.io, iwahlanganise, futhi iwaxhumanise nephrojekthi yakho. Kulula ngaleyo ndlela ukungeza, isibonelo, abakhiqizi bezinombolo abangahleliwe, izinhlaka zewebhu, noma imitapo yolwazi eyimfihlo.

Phakathi kwemiyalo evame kakhulu yile cargo new ukuqala amaphrojekthi kanambambili o cargo new --lib okwemitapo yolwazi; cargo build ukuhlanganisa kumodi yokususa iphutha; cargo build --release ukuthola inguqulo eyenziwe kahle, egxile ekukhiqizeni; futhi cargo test ukusebenzisa ibhethri lokuhlola.

cargo check Ifanele ukukhulunywa ngayo ngokukhethekile: ihlanganisa ikhodi iye endaweni ephakathi ngaphandle kokukhiqiza kanambambili, okwenza kube shesha kakhulu ekutholeni amaphutha okuhlanganisaIlungele ukuphindaphinda ngokushesha ngenkathi ohlola imali ekhomba izinkinga ngezakhiwo, izinkomba, nempilo yokuphila.

Ngenxa yalesi simiso sezinto eziphilayo, kuvamile ukuhlela amaphrojekthi akho njengamakhreyithi amancane, achazwe kahle, ukwabelana ngekhodi phakathi kwawo nokusebenzisa kabusha izixazululo ezidalwe umphakathi. Ukuze uthole ukuvumelana okuthuthukile, isibonelo, uzoba namakhreyithi afana ne-Tokio ohlelo oluvumelanayo noma i-crossbeam yezakhiwo zedatha ezisebenza ngesikhathi esisodwa.

Concurrency in Rust: imicu, mutexes, amashaneli, nama-athomu

I-Concurrency ingesinye sezizathu ezenza i-Rust ikhiqize inzalo engaka: ikuvumela ukuthi usebenzise ama-multi-core processors. ngaphandle kokuwela emaphutheni ajwayelekile emicu kanye nenkumbulo eyabiweUma kungokokuqala usondela kulezi zihloko, kuyasiza ukuhlukanisa phakathi kwemiqondo eminingana.

I-Concurrency ihlanganisa ukwenza imisebenzi eminingi egqagqene ngesikhathi, kungaba ngekhodi eyodwa noma eziningi. Ku-Rust, ungakha uchungechunge lwesistimu ukuze wenze umsebenzi ngokuhambisana, futhi ukuqondisa kolimi ukuze uqinisekise ukuthi ukwabelana kwedatha phakathi kwabo kuphephile. Iphutha lakudala isimo somjaho, lapho imicu emibili ifinyelela futhi iguqule idatha ngesikhathi esisodwa, futhi umphumela uncike kuhlelo lokukhishwa—into enzima kakhulu ukuyisusa.

Ukuxhumanisa ukufinyelela kudatha eyabiwe, i-Rust incike ezintweni zokuqala ezifana isimunguluokuqinisekisa ukukhishwa okufanayo: uchungechunge olulodwa kuphela olungangena esigabeni esibalulekile ngesikhathi. Ngokuhambisana ne Arc<T> Ukuze wabelane ngobunikazi phakathi kochungechunge, kungenzeka ukwakha izakhiwo zedatha eyabiwe ezithobela imithetho yobunikazi nokuboleka.

Enye indlela evamile yokuxhumana phakathi kwentambo, ekhuthazwa kakhulu ku-Rust, ukudlulisa umlayezo usebenzisa iziteshiIsiteshi sinendawo yokuthumela kanye nesiphetho sokwamukela; imicu idlulisa imilayezo (amanani) kuyo, okunciphisa ukusetshenziswa kwememori eyabiwe eguquguqukayo futhi kube lula ukucabanga mayelana nesimo sohlelo.

Uma ujula ekuhambisaneni kwezinga eliphansi, okulandelayo kuyavela: izinhlobo ze-athomuOkuguquguqukayo kwe-athomu kufinyelelwa ngokusebenzisa imisebenzi engahlukaniseki ngokombono wentambo. Lokhu kuvumela ukusetshenziswa kwezinto zokubala ezabiwe, amafulegi ezwe, olayini abangakhiyiwe, nokuningi. Ukwenza kahle izinto eziguquguqukayo ze-athomu kudinga ukuqonda amamodeli enkumbulo nemiyalo yokufinyelela, ngakho onjiniyela abaningi bakhetha ukuqala ngezimungulu namashaneli ngaphambi kokungena kule mininingwane.

Izinyathelo zokuqala kanye nezinsiza zokufunda ukuhambisana ne-athomu

Uma ungena enkundleni ngaphandle kokuhlangenwe nakho kwangaphambilini, inkambo ehlakaniphe kakhulu yokwenza ukwakha isisekelo esiqinile imiqondo jikelele ngaphambi kokubhekana namathuluzi athuthukile njengezinhlobo ze-athomu zikaRust. Izincwadi ezifana ne-"Programming Rust" zinikeza isingeniso kancane kancane, kodwa kuvamile ukuthi imisebenzi egxile ezinhlotsheni ze-athomu nezingidi zibonakale ziminyene ekuqaleni.

Ukuze kube lula, kuyancomeka ukuthi uqale uzijwayeze Imicu yendabuko, ukungabandakanywa, nokudluliswa komlayezo ku-Rust. Dlala ngezibonelo ze std::thread, std::sync::Mutex, std::sync::Arc kanye neziteshi ze std::sync::mpsc Kukusiza ukuthi uqonde ukuthi i-compiler ikuqondisa kanjani nokuthi imaphi amaphutha ewagwemayo.

Ngokuhambisanayo, kunconywa kakhulu ukuthi kubuyekezwe izinsiza zesingeniso mayelana ne-concurrency ngokuvamile, ngisho noma zingagxilile ku-Rust: ukuqonda ukuthi yiziphi izimo zohlanga, ukuthi kusho ukuthini ukuvimba, inkumbulo eyabiwe isho ukuthini ngokumelene nokudlulisa umyalezo, nokuthi izingidi zisetshenziswa kanjani. Lapho leyo miqondo iba ngokwemvelo kuwe, i-atomic physics iyayeka ukuba "umlingo omnyama". futhi baba elinye nje ithuluzi, kuphela elithambile kakhulu.

Uma ubuyela emibhalweni ethuthuke kakhulu emayelana nama-athomu nezingidi ku-Rust, kuzoba lula kakhulu ukulandela ukucabanga uma usuvele uqonda ukuthi iyiphi inkinga isakhiwo ngasinye esizama ukuyixazulula: ukusuka kukhawunta elula evikelekile ngentambo ukuya ezakhiweni ezingakhiyiwe ezinciphisa umbango.

Ekugcineni, i-Rust inikeza kokubili amathuluzi asezingeni eliphezulu nasezingeni eliphansi kakhulu, futhi ukhiye uwukukhetha njalo izinga eliphephe kakhulu lokususa elixazulula inkinga yakho, usebenzisa ikhodi ye-athomu. unsafe kuphela lapho ingeza inani ngokweqiniso futhi uqonda ngokugcwele imithelela yayo.

Yonke le nqubo yemvelo yezinhlobo, ubunikazi, ukuboleka, amakhreyithi, amathuluzi, kanye nezakudala ezivumelanayo kuhlangana ukunikeza ulimi ongabhala ngalo. isofthiwe esheshayo, eqinile futhi egcinekayoLokhu kunciphisa izinhlobo eziningi zamaphutha abekade ehlukumeza izinhlelo zesistimu. Njengoba uzijwayeza ngamaphrojekthi amancane, izivivinyo ezifana ne-Rustlings, kanye nemibhalo esemthethweni, le mibono izosuka ekubukekeni njengemithetho eqinile iye ekubeni umfelandawonye okuxwayisayo ngaphambi kokuba inkinga ifinyelele ekukhiqizweni.

Isingeniso solimi lweRust ngezibonelo-0
I-athikili ehlobene:
Isingeniso Esiphelele Sokugqwala: Umhlahlandlela Ongokoqobo Wabasaqalayo Onezibonelo