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

I-Rust isibe ngolunye lwalezo zilimi wonke umthuthukisi wezinhlelo azizwa ngokuphindaphindiwe : ngokushesha njengo-C no-C++, kodwa ngokugxila kakhulu ekuphepheni kwememori kanye nokuhambisana kahle. Lokhu akukhona nje ukumaketha okungenalutho: ukwakheka kwayo kuzungeze i-compiler ethola amaphutha ngesikhathi sokuhlanganiswa—amaphutha owabona kwezinye izilimi kuphela lapho uhlelo seluvele lukhiqizwa… noma lapho luphahlazeka.

Uma unesifiso sokuqonda ukuthi i-Rust ifinyelela kanjani inkumbulo ephephile ngaphandle kokuqoqwa kukadoti kanye nokushintshana kwedatha ngaphandle kokwesaba izinhlanga zedatha , lesi sifundo singesakho. Sizohlanganisa konke kusukela ezisekelweni zolimi kanye ne-ecosystem yalo kuya emiqondweni ebalulekile njengobunikazi, ukuboleka, izinhlobo ezihlanganisiwe, amathuluzi afana ne-Cargo, futhi sibheke ngisho ne-atomicity kanye nokukhiya ngombono ofinyeleleka kalula kulabo abasha ukushintshana kwemali, konke kugxilwe ekuphepheni nasekusebenzeni.

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

I-Rust ulimi lokuhlela olunezinjongo ezijwayelekile, olunezincazelo eziningi oluklanyelwe kokubili izinhlelo zezinhlelo ezisezingeni eliphansi kanye namaphrojekthi aphezulu , kusukela ezinhlelweni zokusebenza , izinjini zemidlalo, kanye neziphequluli kuya kumasevisi ewebhu asebenza kahle kakhulu. Ekuqaleni yasungulwa eMozilla ngenhloso yokuthuthukisa ukuphepha kwesofthiwe, ikakhulukazi ezingxenyeni ezibucayi njengezinjini zesiphequluli.

Isici sayo esichazayo ukuthi iqinisekisa ukuphepha kwememori ngesikhathi sokuhlanganiswa ngaphandle kokusebenzisa umqoqi kadoti. Esikhundleni salokho, i-Rust isebenzisa uhlelo lobunikazi kanye ne-borrow checker elandelela impilo yenani ngalinye kanye nezinkomba zalo. Lokhu kuvimbela izinkinga ezivamile njengezikhombisi ezilengayo, ukugcwala kwe-buffer, kanye nokuvuza kwememori ngaphandle kokudinga ukubalwa kwezinkomba okuzenzakalelayo noma ukuqoqwa kukadoti.

Ngaphezu kwalokho, i-Rust yakhelwe ukwenza kube lula ukuvumelana okuphephile . Uhlobo lwayo kanye nemodeli yobunikazi ivimbela ukugijimisana kwedatha phakathi kwezintambo, okungenani ngenkathi ihlala kukhodi ephephile ye-Rust. Lokhu kusho ukuthi izimo eziningi eziyingozi zitholakala ngesikhathi sokuhlanganiswa, ngaphambi kokuba kusetshenziswe umugqa owodwa wekhodi.

Ngenxa yazo zonke lezi zizathu, izinkampani ezinkulu ezifana neDropbox, iMicrosoft, i-Amazon, ne -Google ziye zamukela i-Rust ezingxenyeni ezibalulekile zengqalasizinda yazo. Futhi akulona iphutha ukuthi ibilokhu ihola phambili ekuhlolweni kwe-Stack Overflow iminyaka eminingi njengolunye lwezilimi "ezithandwa kakhulu" phakathi kwabathuthukisi: ihlanganisa ukusebenza kwesitayela se-C++ nesethi yamathuluzi yesimanje (i-Cargo, i-crates.io) kanye nomphakathi okhuthele kakhulu, ababizwa ngokuthi amaRustaceans.

Imiqondo eyisisekelo: ulimi lokuhlela, izinhlobo kanye nenkumbulo

Ngaphambi kokungena ezicini zokuphepha kwememori kanye nokuhambisana, kufanelekile ukucacisa imiqondo ejwayelekile ephakama ngaso sonke isikhathi lapho usebenza neRust, ikakhulukazi uma uvela kwezinye izilimi noma usanda kuqala uku-program.

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 inqubo lapho uhlelo lunikeza futhi lukhulule amabhlogo ememori ngenkathi lusebenza . Amaphutha kule ndawo avame ukuba yingozi: ukuvuza kwememori (ukwehluleka ukukhulula imemori engasetshenziswanga), ukonakala kwedatha kusuka ekubhalweni okungaphandle kwemingcele, noma ukusebenzisa imemori ngemuva kokuthi ikhululiwe. I-Rust ibhekana nalokhu ngesistimu yohlobo oluqinile kakhulu kanye nemithetho esemthethweni yobunikazi, ukuboleka, kanye nokuphila.

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 we-concurrency, imiqondo efana nezimo zomjaho, ama-mutexe, kanye neziteshi iba yinto ebalulekile: isimo somjaho senzeka lapho izintambo eziningana zifinyelela futhi ziguqula isisetshenziswa esabiwe ngasikhathi sinye ngaphandle kokuhlanganiswa okufanele; i-mutex (ukukhishwa okubambisanayo) iqinisekisa ukuthi intambo eyodwa kuphela ingena esigabeni esibucayi ngesikhathi; futhi iziteshi zivumela imiyalezo ukuthi ithunyelwe phakathi kwezintambo ngaphandle kokwabelana ngqo ngememori.

Kungani ufunde Ukugqwala: Ukuphepha kwenkumbulo kanye nokuvumelana okungesabi

I-Rust izuze idumela layo ngokunikeza izinsika ezintathu ezibalulekile zokuhlela zesimanje : ukusebenza, ukuphepha, kanye namathuluzi abuyekeziwe. Ake sihlole ukuthi kungani la maphuzu ebaluleke kangaka.

Ngokuphathelene nokusebenza, i-Rust ihlanganisa ngqo kuma-binaries omdabu ngaphandle kokudinga umshini obonakalayo noma umhumushi. Imodeli ye-abstractions engabizi kakhulu ihlose ukuqinisekisa ukuthi ama-abstractions asezingeni eliphezulu awangezi imali eningi ngesikhathi sokusebenza. Ngakho-ke, ilungele ukuthuthukisa izinhlelo, imidlalo yevidiyo , izingxenye zesiphequluli, noma ama-microservices aphansi.

Ukuphepha kwememori kuncike kubunikazi bayo kanye nohlelo lokuboleka . Akukho mqoqi kadoti, kodwa umqoqi uyazi kahle ukuthi ubani ongumnikazi wensiza ngayinye, uma ingasadingeki, nokuthi ingakhululwa nini. Lokhu kuvimbela ukuvuza, izikhombisi ezilengayo, kanye namaphutha amaningi awenze ngokwesiko uhlelo lwe-C kanye ne-C++ lwaba yingozi kangaka.

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.

  Umhlahlandlela ophelele wokwenza ubuciko nge-Adobe Firefly

Okuhlangenwe nakho kokuthuthukiswa kukhuliswa ngamathuluzi esimanje afana ne -Cargo , umphathi wephakheji ohlanganisiwe kanye nengqalasizinda yokwakha, kanye nesistimu ebanzi yemitapo yolwazi (amakhreyithi) ehlanganisa konke kusukela ekuxhumaneni okungenazo zonke izindlela (iTokyo) kuya kuzinhlaka zewebhu (i-Actix, i-Rocket, i-Axum). Konke lokhu kusekelwa umphakathi ovulekile, ochumayo, futhi onesineke esimangalisayo, ikakhulukazi kwabaqalayo.

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

Ukuze ubhale futhi usebenzise izinhlelo zakho zokuqala ku-Rust, into evamile okufanele uyenze ukuqala ngokufaka i-toolchain esemthethweni usebenzisa i-rustup (bheka isingeniso esigcwele ku-Rust ), isifaki esilula kanye nomphathi wenguqulo osebenza ezinhlelweni zokusebenza eziyinhloko.

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 ukushintshashintsha ngaphandle kokufaka noma yini, i-Rust Playground (umphathi osemthethweni we-inthanethi) kanye namapulatifomu afana ne-Replit akuvumela ukuthi ubhale futhi usebenzise izingcezu ezincane zekhodi kusuka kusiphequluli sakho, ezilungele ukuzama izibonelo zememori kanye ne-concurrency ngaphandle kokusetha yonke indawo.

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.

  Ukunikezwa kwamandla emakhaya ahlakaniphile: umhlahlandlela ophelele

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 lobunikazi, ukuboleka, kanye nokuphila . Le mithetho iqinisekisa ukuthi izinkomba zihlala zisebenza nokuthi inkumbulo ikhishwa ngokuphephile ngaphandle kwemfucuza eqongelelekile.

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 unikeza inani elifanele kwenye i-variable noma uyidlulisela ngenani kumsebenzi, impahla iyathuthwa. Lokhu kusho ukuthi i-variable yokuqala ayisasebenzi ngemva kwe-move . Le ncazelo ye-move ivimbela ukukhishwa okuphindwe kabili, ngoba abanikazi ababili abakaze bazame 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 yokuboleka ingafingqwa kanje: nganoma yisiphi isikhathi, ungaba nezinkomba eziningi ezingaguquki enanini, noma ireferensi eyodwa eguquliwe , kodwa hhayi zombili ngasikhathi sinye. Lokhu kususa izimo zobuhlanga kwimemori eyabiwe: kungaba abafundi abaningi, noma kukhona umbhali oyedwa kuphela; akusoze kwaba khona abafundi nababhali abafinyelela idatha efanayo ngasikhathi sinye.

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

I-Rust inikeza izindlela eziningana zokuhlanganisa idatha ehlobene ibe yizakhiwo ezicebile, kuqala nge -structs . I-struct ikuvumela ukuthi uchaze uhlobo oluzenzakalelayo olunezinkambu eziqanjwe ngamagama, 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.

  Indlela Yokuvula noma Ukuvala I-Indexing ku-Windows 10

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 ingenye yezizathu ezenza i-Rust idale isithakazelo esikhulu: ikuvumela ukuthi usebenzise ama-processor amaningi ngaphandle kokuwela ezingibeni ezivamile zemicu kanye nememori eyabiwe . Uma lokhu kungokokuqala uhlangana nalezi 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.

Olunye uhlobo oluvamile lokuxhumana phakathi kwezintambo, olukhuthazwa kakhulu ku-Rust, ukudlulisa imiyalezo kusetshenziswa iziteshi . Isiteshi sinesiphetho sokuthumela kanye nesiphetho sokwamukela; izintambo zidlulisa imiyalezo (amanani) ngaso, kunciphisa ukusetshenziswa kwememori eyabiwe eguquguqukayo futhi kwenza kube lula ukucabanga ngesimo sesistimu.

Uma sihlola ngokujulile i-concurrency esezingeni eliphansi, kuvela izinhlobo zama-athomu . Lezi yiziguquguquko ezifinyelelwa ngemisebenzi engahlukaniseki kusukela embonweni wentambo. Lokhu kuvumela ukusetshenziswa kwezibali ezabiwe, amafulegi esifundazwe, imigqa engenalo ukukhiya, nokuningi. Ukuqonda izinhlobo zama-athomu kudinga ukuqonda amamodeli enkumbulo kanye nemiyalo yokufinyelela, ngakho-ke abathuthukisi abaningi bakhetha ukuqala ngama-mutexes neziteshi ngaphambi kokucwila kule mininingwane.

Izinyathelo zokuqala kanye nezinsiza zokufunda ukuhambisana ne-athomu

Uma ungena ensimini ungenalo ulwazi lwangaphambilini, kuwukuhlakanipha ukwakha isisekelo esiqinile semiqondo ejwayelekile ngaphambi kokubhekana namathuluzi athuthukile njengezinhlobo zama-athomu zikaRust. Izincwadi ezifana ne-"Programming Rust" zinikeza isingeniso kancane kancane, kodwa kuvamile ukuthi imisebenzi egxile ezinhlotsheni zama-athomu kanye nokukhiya ibonakale inzima 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.

Ngesikhathi esifanayo, kunconywa kakhulu ukuthi kubuyekezwe izinsiza zokuqala mayelana ne-concurrency ngokujwayelekile, noma ngabe azigxilile ngqo ku-Rust: ukuqonda ukuthi yiziphi izimo zohlanga, ukuthi kusho ukuthini ukuvimba, imiphumela yenkumbulo eyabiwe uma kuqhathaniswa nokudlulisa imiyalezo, nokuthi ama-lock asetshenziswa kanjani. Uma le mibono isiba yinto yesibili, ama-athomu lock awabe "engumlingo omnyama" futhi abe yithuluzi nje elihlukile, yize liyithuluzi elibucayi 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.

Lonke lolu hlelo lwezinhlobo, ubunikazi, ukuboleka, amabhokisi, amathuluzi, kanye nezinto zokuqala ezihambisanayo zihlangana ukuze zinikeze ulimi lapho ungabhala khona isofthiwe esheshayo, eqinile, nengagcinwa , unciphise izinhlobo eziningi zamaphutha abelokhu ehlupha izinhlelo zezinhlelo. Njengoba uzijwayeza ngamaphrojekthi amancane, izivivinyo ezifana ne-Rustlings, kanye nemibhalo esemthethweni, le mibono izoshintsha isuke ekubeni imithetho eqinile iye ekubeni umngane okuxwayisayo ngaphambi kokuba i-bug ifinyelele ekukhiqizweni.

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