- Daxalku wuxuu xaqiijiyaa badbaadada xusuusta marka la ururiyo lahaanshaha, amaahda, iyo cimriga, iyada oo aan la isticmaalin ururinta qashinka.
- Nidaamka nooca iyo qawaaniinta aliasing waxay ogolaadaan isdhaafsiga iyada oo aan la isticmaalin tartanka xogta iyadoo la isticmaalayo mutexes, channels, iyo tilmaameyaal caqli badan.
- Xamuulka, crates.io, iyo nidaamka deegaanka ee firfircoon ayaa fududeeya maaraynta ku-tiirsanaanta, ururinta, tijaabinta, iyo geynta.
- Fahamka qaab-dhismeedka, tirooyinka, Ikhtiyaarka, iyo Natiijooyinka ayaa fure u ah maaraynta khaladaadka iyo qaabaynta xogta badbaadada leh ee codsiyada iswada jira.
Daxalku wuxuu noqday mid ka mid ah luqadahaas Nidaam kasta oo horumariya wuxuu ku dhamaanayaa inuu maqlo marar badan.Waa sida ugu dhakhsaha badan C iyo C++, laakiin iyada oo ku dhawaad diirada la saaray amniga xusuusta iyo isdhaafsiga si wanaagsan loo fuliyay. Tani kaliya maahan suuqgeyn faaruq ah: nashqaddeedu waxay ku wareegaysaa iskudubaridiyaha ogaanshaha khaladaadka wakhtiga la ururinayo - khaladaadka luqadaha kale waxaad ku arkaysaa kaliya marka nidaamku ku jiro wax soo saarka… ama marka uu shil galo.
Haddii aad xiisaynayso fahanka Sida miridhku u gaadho xusuusta badbaadada leh iyada oo aan la ururin qashinka iyo lacag la'aan iyada oo aan ka cabsanayn xogtaCasharradan adigaa leh Waxaan dabooli doonaa wax walba laga bilaabo aasaaska luqadda iyo hab-nololeedkeeda ilaa fikradaha muhiimka ah sida lahaanshaha, amaahashada, noocyada isku dhafan, agabka sida xamuulka, iyo xitaa fiirin doona noocyada atomiga iyo qufulka iyadoo laga eegayo dhinacyo badan oo la heli karo kuwa cusub si ay isula jaanqaadaan, dhammaan iyadoo diirada la saarayo amniga iyo waxqabadka.
Tababarka Daxalka: Waxqabadka, Badbaadada xusuusta, iyo Lacagta la isku dhaafsado
miridhku waa luuqad barnaamijeed barnaamijka ujeedo guud iyo jaangooyooyin badan, oo loogu talagalay barnaamijyada nidaamka hoose iyo sidoo kale mashaariicda heerka sare ahka nidaamyada hawlgalkaLaga soo bilaabo makiinadaha ciyaarta iyo daalacashada ilaa adeegyada shabakada waxqabadka sare leh, waxay ka soo bilaabatay Mozilla iyada oo ujeedadu tahay hagaajinta amniga software, gaar ahaan qaybaha xasaasiga ah sida mishiinka browserka.
Sifadeeda qeexan waa taas waxay dammaanad qaadaysaa badbaadada xusuusta wakhtiga la ururinayo adigoon isticmaalin qashin ururiye. Taa baddalkeeda, Rust waxay shaqaaleysiisaa nidaamka lahaanshaha iyo jeegeeyaha amaahda kaas oo la socda inta uu nool yahay qiime kasta iyo tixraaciisa. Tani waxay ka fogaanaysaa dhibaatooyinka caadiga ah sida tilmaame-jileeca, qulqulka qulqulka, ama daadinta xusuusta iyada oo aan loo baahnayn tirinta tixraaca tooska ah ama ururinta qashinka.
Intaa waxaa dheer, Rust waxaa loogu talagalay in lagu fududeeyo isdhaafsi ammaan ahNooca iyo qaabka lahaanshaha ayaa ka hortagaya tartanka xogta ee u dhexeeya dunta, ugu yaraan inta lagu sii jiro koodka Rust ee nabdoon. Tani waxay ka dhigan tahay in xaalado badan oo khatar ah la ogaado wakhtiga la ururinayo, ka hor inta aan hal xariiq la fulin.
Sababahan oo dhan awgood, shirkadaha waaweyni waxay jecel yihiin Dropbox, Microsoft, Amazon ama Google Waxay qaateen miridhku qaybaha muhiimka ah ee kaabayaashooda. Mana aha wax kadis ah in ay sare u kacday codbixinta Stack Overflow sanado badan sida mid ka mid ah luuqadaha "ugu jecel" ee horumariyayaashu: waxay isku daraysaa waxqabadka C ++-style qalab casri ah (Cargo, crates.io) iyo bulsho aad u firfircoon, waxa loogu yeero Rustaceans.
Fikradaha aasaasiga ah: luqadda barnaamijka, noocyada iyo xusuusta
Ka hor inta aanad u daadagin waxyaabaha gaarka ah ee amniga xusuusta iyo isdhaafsiga, waxaa habboon in la caddeeyo qaar ka mid ah fikradaha guud ee soo muuqda el tiempo Markaad la shaqeyneyso Rust, gaar ahaan haddii aad ka timid luqado kale ama aad hadda bilaabayso inaad barnaamij sameyso.
Luuqadda barnaamijku waa, ugu dambeyntii, xeerar iyo qaab-dhismeedyo kuu oggolaanaya inaad qeexdo algorithms una beddelaan barnaamijyo la fulin karo. Daxalku waxa uu ku ururiyaa koodka mashiinka asalka ah isaga oo isticmaalaya isku-dubaridihiisa rustcSidaa darteed, waxqabadka aad helayso wuxuu inta badan la siman yahay C iyo C++.
Maareynta xusuusta waa habka uu barnaamijku u shaqeeyo kaydiya oo sii daaya baloogyada xusuusta marka la ordayoKhaladaadka ka jira meeshan inta badan waa dilaa: xusuusta oo soo daata ( ku guul dareysata inay sii deyso xusuusta aan la isticmaalin), musuqmaasuqa xogta ee qoraalka ka baxsan, ama isticmaalka xusuusta ka dib marka la sii daayo. Daxalku wuxuu tan wax uga qabtaa nidaam nooc aad u xooggan iyo xeerar rasmi ah oo lahaanshaha, amaahda, iyo nolosha oo dhan.
Daxalku sidoo kale wuxuu leeyahay ereyo sida noocyada smart iyo tilmaamayaashaNooc ayaa qeexaya nooca xogta ee doorsoomuhu kaydiyo (isugeeyayaasha, sabaynta, xargaha, qaab-dhismeedka, iwm.) iyo sida loo maamulayo. Tilmaamayaasha smart (tusaale ahaan, Box, Rc y Arc) waa qaab-dhismeedyo soo koobaya ciwaannada xusuusta oo ku dara caqli-gal dheeraad ah si loo maareeyo kheyraadka si badbaado leh, sida tirinta tixraacyada la wadaago ama u dhaqaaqida qiyamka taallo.
Dhanka tartanka, fikradaha sida xaaladaha jinsiyadda, mutexes, iyo channels Waxay noqdaan lama huraan: xaalad jinsiyadeed waxay dhacdaa marka dunta badan ay galaan oo ay wax ka beddelaan kheyraadka la wadaago isla mar ahaantaana iyada oo aan la isku dubaridin habboonayn; mutex (iska-saarid labada dhinac ah) waxay hubisaa in hal dun kaliya ay gasho qaybta muhiimka ah markiiba; kanaaladana waxay ogolaadaan in fariimaha la isku diro inta u dhaxaysa dunta iyada oo aan si toos ah loo wadaagin xusuusta.
Maxaad u baranaysaa miridhku: Badbaadada xusuusta iyo isdhaafsiga cabsida leh
Daxalku wuxuu kasbaday caannimadiisa sababtoo ah waxay bixisaa saddex tiir oo aad u qiimo badan oo loogu talagalay barnaamijyada casriga ahWaxqabadka, amniga, iyo qalabka hadda jira. Aynu aragno sababta ay qodobbadani u khuseeyaan.
Marka la eego waxqabadka, miridhku waxay si toos ah ugu ururisaa binaries hooyo iyada oo aan loo baahnayn mishiin ama turjubaan. Qaabka qiimaha eber-ka-soo-baxa wuxuu hiigsanayaa inuu hubiyo in aabstraction-yada heerka sare ah aysan ku darin kharash dheeraad ah wakhtiga runtime. Sidaa darteed, waxay ku habboon tahay horumarinta nidaamyada. videogamesQaybaha browserka ama adeegaha yar yar ee daahsoon
Nabadgelyada xusuusta waxay ku saleysan tahay lahaanshaha iyo nidaamka amaahdaMa jiro qashin ururiye, laakiin ururiyaha ayaa si sax ah u garan kara cidda iska leh kheyraad kasta, marka aan loo baahnayn, iyo marka la sii deyn karo. Tani waxay ka hortagtaa liidashada, tilmaame-yaasha, iyo khaladaad badan oo dhaqan ahaan ka dhigay barnaamijka C iyo C++ kuwo aad khatar u ah.
Goobta tartanka, Rust waxay raacdaa waxa inta badan loo yaqaan "concurrency bilaa cabsi"Nidaamka nooca laftiisa ayaa ka hortagaya xididdada xogta ee jira kood sugan. Haddii aad rabto in aad wadaagto xogta la beddeli karo inta u dhaxaysa dunta, waxaad u baahan doontaa inaad isticmaasho waxyaabaha aasaasiga ah sida Mutex, RwLock o Arc, iyo isku-dubariduhu waxa uu hubin doonaa in la ixtiraamo xeerarka kala-soocidda iyo isku-beddelka.
Khibrada horumarinta waxaa lagu xoojiyay qalab casri ah sida CargoWaxay ka kooban tahay maareeye xirmo isku dhafan oo ay dhisto kaabayaal dhaqaale, iyo nidaam deegaan oo ballaadhan oo maktabado ah (crates) oo daboolaya wax walba laga bilaabo isku xidhka asynchronous (Tokyo) ilaa qaab-dhismeedka shabakadda (Actix, Rocket, Axum). Waxaas oo dhan waxa taageera bulsho furfuran, wax badan leh, oo dulqaad badan, gaar ahaan kuwa bilowga ah.
Rakibaadda iyo qalabka lagama maarmaanka ah: rustup, rustc iyo Cargo
Si aad u qorto oo aad ugu socodsiiso barnaamijyadaada ugu horreeya ee Rust, waxa caadiga ah ee la sameeyo waa in la bilaabo rakibidda qalabka rasmiga ah ee isticmaalaya rufuun (fiiri Hordhac dhammaystiran oo ku saabsan miridhku), rakibe fudud iyo maamulaha nooca ka shaqeeya dhammaan nidaamyada hawlgalka ee waaweyn.
cunt rufuun Waad ku rakibi kartaa, cusbooneysiin kartaa, oo aad u kala beddeli kartaa noocyada kala duwan ee Rust (xasillooni, beta, habeen) adigoon waxba jebin. Kaliya u gudub bogga qalabka Rust ee rasmiga ah oo raac tillaabooyinka nidaamkaaga. Marka la rakibo, iskudubariduhu waa la heli doonaa. rustc, maamulaha mashruuca cargo iyo tiisa rustup ee aad terminal.
iskudubaridiyaha rustc Waa waxa u beddela koodhka ishaada ee binaries ama maktabado la fulin karo. Inkasta oo aad si toos ah ugu yeeri karto amarada sida rustc main.rsFicil ahaan, waxaad had iyo jeer ka shaqayn doontaa Cargo, kaas oo maareynaya wicitaannada rustc oo leh xulasho sax ah.
Qalabka dhexe ee socodka shaqadu waa CargoAmarro yar oo keliya, waxaad abuuri kartaa mashruucyo cusub, waxaad maarayn kartaa ku-tiirsanaanta, ururin kartaa, tijaabin kartaa, oo waxaad ku daabici kartaa baakadaha crates.io. Qaar ka mid ah amarada aasaasiga ah ee inta badan la isticmaalo waa: cargo new, cargo build, cargo run, cargo test y cargo check, kaas oo hubiya koodka iyada oo aan soo saarin fulinta kama dambaysta ah, oo ku habboon in si dhakhso ah loo ogaado khaladaadka.
Haddii aad rabto in aad tinker adigoon wax rakibin, Garoomada Daxalka (fuliyaha rasmiga ah ee khadka tooska ah) iyo aaladaha sida Replit waxay kuu oggolaanayaan inaad qorto oo aad ku socodsiiso qaybo yar oo kood ah browserka, oo ku habboon tijaabinta xusuusta iyo tusaalooyinka isdhaafsiga adoon u baahnayn inaad dejiso deegaanka oo dhan.
Barnaamijkaagii ugu horreeyay: Hello, Rust, iyo socodka aasaasiga ah
Habka caadiga ah ee lagu bilaabo wada sheekeysiga luqad kasta waa kan caanka ah "Hello, world." Gudaha Rust, fayl main.rs ugu yaraan waxaa ku jiri kara shay fudud sida shaqada main kaas oo ku daabaca xadhig shaashadda.
Ereyga muhiimka ah fn waxay muujinaysaa in aanu qeexnay hawl, iyo main Tani waa barta laga soo galo barnaamijka. Koodhka koodhka shaqadu waxa uu dhex maraa xargaha laablakaca ah. Si aad wax ugu qorto console-ka, isticmaal Dhaqale println!, kaas oo aqbala xarriiq toosan (ama template leh bookmarks) oo u soo dira wax soo saarka caadiga ah ee ku dhamaanaya xarfo cusub.
Haddii aad si toos ah ula soo ururiso rustc main.rs, waxaad heli doontaa binary la fulin karo (tusaale ahaan, main o main.exe (waxay kuxirantahay nidaamka). Markaad socodsiiso, waxaad arki doontaa fariinta terminalka. Laakin habka sarbeebta ah ee lagula shaqeeyo Rust waa in loo ogolaado Cargo inay hogaanka u qabato mashruuca.
cunt cargo new nombre_proyecto Qaab dhismeedka gal waxa si toos ah loogu abuurayaa a src/main.rs horeyba loogu diyaariyey "Hello, world" iyo fayl Cargo.toml Kaas oo ka kooban xog-ururinta iyo ku-tiirsanaanta mustaqbalka. Halkaa, cargo run ururi oo maamula binary-gaoo kaliya waxay dib u ururisaa marka ay ogaato isbeddelada.
Habkani ma aha mid ku habboon oo kaliya, laakiin waxay ku baraneysaa inaad isticmaasho nidaamka deegaanka Rust ee caadiga ah bilawga, taas oo aad waxtar u leh markaad bilowdo inaad ku darto sanduuqyada isdhaafsiga, isku-xirka, tijaabinta, ama wax kasta oo aad u baahan tahay.
// Waxaan cadeyneynaa shaqada ugu weyn: barta gelitaanka barnaamijka fn main() {// Waxaan isticmaalnaa println! macro si aad u daabacdo qoraalka konsole println!("Hello, aduunka!"); }
Kala duwanaansho, isbeddel, iyo noocyada xogta aasaasiga ah
Rust dhexdeeda, doorsoomayaasha waxaa lagu dhawaaqaa ereyga muhiimka ah let, iyo sida caadiga ah yihiin kuwo aan beddeli karinSi kale haddii loo dhigo, marka aad u dhiibto qiime, ma beddeli kartid ilaa aad si cad ugu sheegto inay tahay mid la beddeli karo mut.
Isbeddel la'aanta sida caadiga ah waxay caawisaa ka fogaanshaha khaladaadka macquulka ah ee daahsoon, gaar ahaan barnaamijyada isku midka ah halkaasoo taxane badan ay rabaan inay beddelaan isla qiimaha. Haddii aad u baahan tahay inaad beddesho, waxaad qortaa wax la mid ah let mut contador = 0;Halkaas waxaad dib ugu habeyn kartaa qiyamka cusub contador.
miridhku waxa kale oo uu ogol yahay waxa loogu yeero hadhsanWaxaad ku dhawaaqi kartaa doorsoome cusub oo isla magac isku mid ah, adigoo qarinaya kii hore. Tani la mid ma aha sida mutating, sababtoo ah waxaad abuuraysaa qiimo cusub (kaas oo xitaa noqon kara nooc ka duwan). Tusaale ahaan, waxaad ka beddeli kartaa xadhig oo aad u beddeli kartaa isku mid adiga oo isticmaalaya isla magac, waase haddii uu yahay caddayn cusub oo leh let.
Nooca daxalku waa mid taagan, taas oo macnaheedu yahay Nooca doorsoome kasta waxa lagu yaqaan marka la ururinayoSi kastaba ha ahaatee, fikradda nooca waa mid aad u awood badan: haddii aad wax qorto let x = 5;Isku-dubariduhu wuxuu u qaadanayaa inay tahay a i32 Haddaanad si kale u sheegin. Waxaad ku dari kartaa qoraalo sida let x: i64 = 5; markaad rabto inaad si cad u sheegto.
Waxaa ka mid ah noocyada scalar ee jira kuwa saxeexan iyo kuwa aan saxeexin (i8, u8, i32iwm), kuwa sabayn (f32, f64), Reer Booliis (bool) iyo xuruufta Unicode (char). Noocyadan fudud ayaa badanaa ah kuwo raqiis ah in la koobiyeeyo qaar badanina way hirgeliyaan sifada Copytaas oo macnaheedu yahay marka aad u xilsaarto ama u gudbiso shaqo, waa la koobiyeeyay halkii laga rari lahaa.
Xadhkaha ku jira miridhku: &str iyo xadhig
Maareynta qoraalka ee Rust waxay noqon kartaa wax yar jahawareer marka hore sababtoo ah waxay si cad u kala saaraysaa silsilado "jeexo" iyo silsilado gaar ahLabada qaybood ee muhiimka ah waa &str y String.
Un &str waa a jeex silsilad aan beddeli karinAragtida isku xigxiga UTF-8 ee meel lagu kaydiyay. Tusaalooyinka caadiga ah waxaa ka mid ah suugaanta sida "Hola"kuwaas oo ah nooca &'static str (Waxay jiraan nolosha barnaamijka oo dhan waxayna ku jiraan binary.) Qaybaha ma laha xogta; kaliya ayay farta ku fiiqaan.
Stringdhanka kale, waa a Xadhig u gaar ah, la beddeli karo oo lagu marti galiyay tuubadaWaa la cabbiri karaa, la isku dhejin karaa, loo dhex mari karaa hawlaha iyada oo la dhaqaajinayo hantideeda, iwm. Waxaa badanaa la isticmaalaa marka aad rabto inaad dhisto qoraal firfircoon ama ku kaydiso waqti dheer gudaha dhismayaasha.
Xaalado badan waxaad isku bedeli doontaa mid iyo kan kale: tusaale ahaan, waxaad abuuri doontaa a String::from("hola") laga bilaabo jeexama waxaad amaahan doontaa a &str ee a String adigoo tixraacaya shaqooyinka u baahan in la akhriyo oo keliya.
Kala soocida xogta lahaanshaha iyo amaahda waxay fure u tahay maaraynta xusuusta waxayna ku fidsan tahay luqadda inteeda kale: ururinta, qaab-dhismeedka, iyo tirooyinka waxay raacaan fikrado isku mid ah cidda leh iyo cidda kaliya ee eegeysa.
Hawlaha, socodka socodka, iyo faallooyinka
Hawlaha ku jira Rust waxaa lagu qeexay fn una oggolow barnaamijka in loo habeeyo qaybo macquul ah oo dib loo isticmaali karo. Hawl kastaa waxay qeexdaa nooca xuduudaheeda iyo nooca soo noqoshada fallaadho daba socota ->Haddii aysan soo celin wax macno leh, nooca unitary ayaa la qaadanayaa. ().
Faahfaahin muhiim ah ayaa ah in tibaaxaha ugu dambeeya ee shaqada (ama xannibaad kasta) oo aan lahayn semicolon loo qaato qiimaha soo celinta tooska ah. Waad isticmaali kartaa return soo laabashada horeLaakin koodka sarbeeb ahaan, waxaad inta badan si fudud uga tagtaa odhaahda ugu dambaysa la'aanteed. ;.
Socodka kontoroolka waxaa lagu maamulaa classics if/elsesiddo loop, while y forDaxalka dhexdiisa, if Waa tibaax soo celisa qiyamkasi aad si toos ah ugu isticmaali karto a letwaase haddii laamuhu soo noqdaan nooc isku mid ah. Loops for Caadi ahaan waxay ku cel-celiyaan kala-duwanaanshaha ama soo-qaadayaasha ururinta waana doorashada lagu taliyay halkii ay ka ahaan lahaayeen tusmooyinka gacanta.
Si aad u diiwaan geliso koodka oo aad nolosha ugu fududayso qof kasta oo yimaada kadib (oo ay ku jirto naftaada bil gudaheed), waad isticmaali kartaa comments line la // ama ku xannibo /* ... */Intaa waxaa dheer, Rust waxay bixisaa faallooyin dukumeenti ah /// kuwaas oo noqda dukumentiyo la soo saaray, in kasta oo ay ku habboon yihiin in badan oo mashaariic waaweyn ah.
Lahaanshaha, amaahinta, iyo nolosha: aasaaska amniga xusuusta
Halkan waxaan ku nimid wadnaha moodada xusuusta Rust: nidaamka lahaanshaha, amaahashada, iyo noloshaXeerarkani waxay xaqiijinayaan in tixraacyadu ay had iyo jeer sax yihiin iyo in xusuusta si badbaado leh loo sii daayo iyada oo aan la ururin qashinka.
Xeerarka aasaasiga ah ee lahaanshaha way fududahay in la sheego, in kasta oo ay ku adkaan karto in marka hore la dhex galo: Qiimaha kastaa wuxuu leeyahay hal milkiile.Waxaa jiri kara hal milkiile markiiba; oo marka mulkiiluhu ka tago baaxaddiisa, qiimihiisu wuu burburaa, xusuustana waa la sii daayaa. Tani waxay khusaysaa, tusaale ahaan, a String: marka la dhammeeyo balooggii lagu dhawaaqay, si toos ah ayaa loogu yeeraa drop Kaas oo xoreynaya xusuusta tuulan.
Marka aad u qoondayso qiime habboon doorsoome kale ama aad ku dhaafto qiime hawl, hantida waa la raray. Taas macnaheedu waxa weeye doorsoomiyaha asalka ah wuxuu joojinayaa inuu ansax noqdo guuritaanka ka dibSemantics dhaqdhaqaaqa Tani waxay ka fogaanaysaa sii deynta labanlaab ah, sababtoo ah marnaba ma jiraan laba mulkiile oo isku dayaya inay sii daayaan kheyraad isku mid ah.
Si loogu oggolaado qaybo badan oo barnaamijka ka mid ah inay galaan isla qiime la mid ah iyada oo aan la beddelin lahaanshaha, Rust wuxuu soo bandhigayaa tixraacyo iyo amaah. Markaad amaahato, waxaad abuurtaa tixraac &T (aan bedeli karin) ama &mut T (la beddeli karo) qiimaha iyada oo aan la wareejin lahaanshaha. Amaahda waxaa xaddidaya sharciyada xaqiijiyaha amaahda., kaas oo hubinaya in tix-raacyadu aanay dhaafin xogta ay tilmaamayaan iyo in gelitaannada la bedeli karo iyo kuwa la wadaago aysan ahayn kuwo khatar ah oo isku dhafan.
Shuruucda amaahda waxaa lagu soo koobi karaa sida soo socota: wakhti kasta, midkoodna waad heli kartaa tixraacyo badan oo aan la beddeli karin qiime ahaan, ama tixraac keliya oo la beddeli karoLaakiin labadaba isku mar maaha. Tani waxay meesha ka saaraysaa xaaladaha jinsiyadeed ee xusuusta la wadaago: ama waxaa jira akhristayaal badan, ama waxaa jira qoraa gooni ah; Marna akhristayaasha iyo qorayaasha isku mar xogta isku mid ma aha isla markiiba.
Noocyada isku dhafan: qaab-dhismeedka, tirooyinka, iyo tilmaamayaasha smart
Daxalku wuxuu bixiyaa dhowr siyaabood oo xogta laxiriirta lagu kooxeeyo qaab dhismeedyo qani ah, laga bilaabo qaabeeyaQaab dhismeedku wuxuu kuu ogolaanayaa inaad qeexdo nooc gaar ah oo leh goobo la magacaabay, tusaale ahaan isticmaale wata iimaylka, magaca, heerka dhaqdhaqaaqa iyo miiska galitaanka.
Si aad u abuurto tusaale qaab dhismeed ah, waxaad buuxinaysaa dhammaan goobahiisa, waxaadna calaamadin kartaa doorsoomaha ku jira inuu yahay mid la bedeli karo si loo beddelo qiyamkiisa hadhow. Waxa kale oo jira hab-dhismeedka cusboonaysiinta syntax, kaas oo kuu ogolaanaya inaad dhisto tusaale cusub adiga oo dib u isticmaalaya qaybo ka mid ah kuwa jira. ..otro_struct.
ka tiro Waxay yihiin tiir kale oo muhiim ah: waxay kuu oggolaanayaan inaad qeexdo nooc ka mid noqon kara dhowr nooc oo suurtagal ah, mid kastaa wuxuu leeyahay xogtiisa la xiriirta ama la'aanteed. Tusaalaha caadiga ah waa tiro koob loogu talagalay cinwaannada IP-ga, oo leh hal nooc V4 kaas oo kaydiya afar octets iyo mid kale V6 kaas oo kaydiya xadhig leh calaamad IPV6.
Maktabadda caadiga ah ee Rust's waxaa ku jira laba tixood oo aad muhiim u ah: Option<T> y Result<T, E>Midda kowaad waxay ka dhigan tahay joogitaanka ama maqnaanshaha qiimaha (wax ama waxba), waxaana loo adeegsadaa si looga fogaado tilmaamayaasha aan waxba ka jirin; model labaad hawlgallada in awood soo celi natiijo sax ah ama khalad, oo u baahan in maaraynta khaladku ay noqoto mid cad oo sugan.
Si loo maareeyo xusuusta firfircoon loona wadaago xogta, Rust ayaa leh tilmaame caqli badan sida Box<T>, Kaas oo qiimihiisu u raro taallo oo ilaalinaya lahaanshaha gaarka ah; Rc<T>, tirinta tixraaca ee la wadaago ee meelaha hal-xadhkaha leh; iyo Arc<T>, la mid ah Rc laakiin badbaado u ah dunta badan. Isticmaalkooda si sax ah ayaa muhiim u ah marka la isku daro xusuusta firfircoon iyo isdhaafsiga.
Cargo iyo Crates Ecosystem
Xamuulku waa xabagta isku haysa nidaamka deegaanka miridhku. waxay maamushaa isu-ururinta, ku-tiirsanaanta, iyo meertada nolosha mashruucaMashruuc kastaa wuxuu leeyahay fayl Cargo.toml Kaas oo u dhaqma sida bayaan, isagoo ku dhawaaqaya magaca, nooca, daabacaadda luqadda, iyo ku tiirsanaanta dibadda.
Qaybta Faylkan wuxuu kuu ogolaanayaa inaad ku taxdo sanduuqyada qolo saddexaad oo leh noocyadooda. Markaad ordo cargo build o cargo runXamuulka ayaa si otomaatig ah uga soo dejisan sanduuqyadan crates.io, ururiyay, oo ku xidhay mashruucaaga. Way fududahay in lagu daro, tusaale ahaan, abuurayaasha lambarada random, qaab-dhismeedka shabakada, ama maktabadaha cryptographic.
Amarrada ugu caansan waxaa ka mid ah cargo new si loo bilaabo mashaariicda binary o cargo new --lib maktabadaha; cargo build in lagu soo ururiyo habka debug; cargo build --release si loo helo qaab la wanaajiyey, wax soo saarka ku jihaysan; iyo cargo test si loo socodsiiyo batteriga imtixaanada.
cargo check Waxay mudan tahay in si gaar ah loo sheego: waxay u ururisaa koodka meel dhexe iyada oo aan la soo saarin binary, taas oo ka dhigaysa aad ugu degdegto ogaanshaha khaladaadka ururintaWay ku fiican tahay in si dhakhso leh loogu cel-celiyo halka jeegeeyaha amaahdu tilmaamayo dhibaatooyinka guryaha, tixraacyada, iyo cimriga.
Waad ku mahadsan tahay nidaamka deegaanka, waa wax caadi ah in loo qaabeeyo mashaariicdaada sidii sanduuqyo yaryar oo si wanaagsan loo qeexay, wadaaga koodka iyo dib u adeegsiga xalalka bulshadu abuurtay. Lacagta isdhaafsiga ee horumarsan, tusaale ahaan, waxaad yeelan doontaa sanduuqyo sida Tokio oo loogu talagalay barnaamijyada asynchronous ama crossbeam ee qaab-dhismeedka xogta ee waxqabadka sare leh.
Concurrency in Rust: dunta, mutexes, kanaalada, iyo atomiga
Concurrency waa mid ka mid ah sababaha uu Rust u dhalinayo xiisaha aad u badan: waxay kuu ogolaaneysaa inaad ka faa'iideysato soo-saareyaasha badan-core. iyada oo aan lagu dhicin khaladaadka caadiga ah ee dunta iyo xusuusta la wadaagoHaddii tani ay tahay markii ugu horeysay ee aad u soo dhowaanayso mawduucyadan, waxaa waxtar leh in la kala saaro fikrado dhowr ah.
Concurrency waxay ku lug leedahay fulinta hawlo badan oo isku dhejinaya wakhtiga, ha ahaadeen hal ama dhowr qaybood. Rust dhexdeeda, waxaad samayn kartaa dunta nidaamka si aad u qabato shaqada si barbar socota, luqadduna waxay ku hagaysaa inaad hubiso in wadaaga xogta dhexdooda ay tahay mid badbaado leh. Khaladka caadiga ah waa xaaladda jinsiyadda, halkaas oo laba dunood ay galaan oo wax ka beddelaan xogta isku mar, natiijaduna waxay ku xiran tahay amarka fulinta-wax aad u adag in la saxo.
Si la isugu duwo gelitaanka xogta la wadaago, Rust waxay ku tiirsan tahay waxyaabaha aasaasiga ah sida mutexkaas oo dammaanad qaadaya ka saarista labada dhinac: kaliya hal dun ayaa geli karta qaybta muhiimka ah markiiba. Marka lagu daro Arc<T> Si loo wadaago lahaanshaha inta u dhaxaysa dunta, waxaa suurtagal ah in la dhiso qaab-dhismeedka xogta la wadaago oo u hoggaansamaya xeerarka lahaanshaha iyo amaahda.
Nooc kale oo caan ah oo ah isgaarsiin isku xiran, oo si weyn loogu dhiirigeliyay miridhku, waa fariin gudbinta oo la isticmaalayo kanaalkaKanaalku wuxuu leeyahay dhamaadka dirida iyo dhamaadka helista; duntu waxay dhex martaa farriimaha (qiimaha), taas oo yaraynaysa isticmaalka xusuusta la wadaago ee la beddeli karo oo fududaysa sababaynta xaaladda nidaamka.
Markaad si qoto dheer u dhex gasho lacagta isdhaafsiga ah ee heerka hoose, waxa soo socdaa kuu muuqda: noocyada atomigaDoorsoomayaasha atomiga waxaa lagu helaa hawlgalo aan loo kala qaybin marka laga eego dhinaca dunta. Tani waxay u ogolaaneysaa hirgelinta xisaabaadka la wadaago, calanka gobolka, safafka qufulka la'aanta, iyo in ka badan. Hagaajinta doorsoomayaasha atomiga waxay u baahan tahay fahamka moodooyinka xusuusta iyo amarrada gelitaanka, sidaa darteed horumariyayaal badan ayaa door bida inay ku bilaabaan mutex-yada iyo kanaalada ka hor inta aysan u dhexgalin faahfaahintan.
Tallaabooyinka ugu horreeya iyo agabka barashada isdhaafsiga iyo atomiga
Haddii aad soo gelayso saaxadda adigoon khibrad hore lahayn, tallaabada ugu xikmadda badan ee la qaado waa dhis aasaas adag oo fikradaha guud ah Kahor intaadan la dagaalamin aaladaha horumarsan sida noocyada atomiga ee Rust. Buugaag sida "Barnaamijka Rust" waxay bixiyaan hordhac tartiib tartiib ah, laakiin waa wax caadi ah shaqooyinka diirada saaraya noocyada atomiga iyo qufulyada inay u muuqdaan kuwo cufan marka hore.
Si aad u fududaato, waxaa lagugula talinayaa inaad marka hore is barato Mawduuc dhaqameed, ka saarid labada dhinac ah, iyo fariinta gudbinta ee miridhku. Ku ciyaar tusaalayaal std::thread, std::sync::Mutex, std::sync::Arc iyo kanaalada std::sync::mpsc Waxay kaa caawinaysaa inaad fahanto sida uu kuu hagayo isu-dubariduhu iyo khaladaadka uu iska ilaalinayo.
Marka la barbar dhigo, waxaa aad loogu talinayaa in dib loo eego agabka hordhaca ah ee isdhaafsiga guud ahaan, xitaa haddii aysan diiradda saarin miridhku: fahamka waxa xaaladaha jinsiyadeed, waxa xannibaadda macnaheedu yahay, waxa xusuusta la wadaago ay ka dhigan tahay gudbinta fariinta, iyo sida loo isticmaalo qufullada. Marka fikradahaas ay dabiici kuu noqdaan, fiisigiska atomiga wuxuu joojinayaa inuu noqdo "sixir madow". oo waxay noqdaan qalab kale, oo kaliya mid aad u jilicsan.
Markaad ku soo noqoto qoraallo horumarsan oo ku saabsan atomikada iyo qufullada ku jira Rust, aad bay u fududaan doontaa inaad raacdo sababta haddii aad hore u fahantay dhibaatada dhisme kastaa isku dayayo inuu xalliyo: laga bilaabo miis fudud oo dun-ammaan ah ilaa dhismayaal quful-la'aan ah oo yareeya muranka.
Ugu dambeyntii, Rust waxay bixisaa labadaba asal heer sare ah iyo qalab aad u hooseeya, furaha ayaa ah in aad had iyo jeer doorato heerka ugu badbaado leh ee xalinta dhibaatadaada, adoo isticmaalaya koodka atomiga. unsafe kaliya marka ay si dhab ah u kordhiso qiimaha oo aad si buuxda u fahamto saameynteeda.
Nidaamkan deegaanka oo dhan ee noocyada, lahaanshaha, amaahashada, sanduuqyada, agabka, iyo waxyaabaha aasaasiga ah ee la isku midka ah ayaa isku daraa si ay u bixiyaan luqad wax lagu qoro software degdeg ah, adag oo la ilaalin karoTani waxay yaraynaysaa noocyo badan oo khaladaad ah kuwaas oo taariikh ahaan aafeeyay barnaamijyada nidaamyada. Markaad ku tababarto mashruucyo yaryar, jimicsiyo sida Rustlings, iyo dukumentiyada rasmiga ah, fikradahani waxay ka bixi doonaan u ekaanshiyaha xeerar adag si ay u noqdaan xulafada kaaga digaya ka hor intaanay dhibaatadu gaarin wax soo saarka.
Qora xamaasad leh oo ku saabsan adduunka bytes iyo farsamada guud ahaan. Waxaan jeclahay inaan aqoontayda ku wadaago qoraal, taasina waa waxa aan ku samayn doono blog-gan, ku tusi doona dhammaan waxyaabaha ugu xiisaha badan ee ku saabsan qalabka, software-ka, qalabka, isbeddellada tignoolajiyada, iyo in ka badan. Hadafkaygu waa inaan kaa caawiyo inaad u dhex marato adduunka dhijitaalka ah si fudud oo madadaalo leh.