Rust Basics
Aina za Kawaida
Unda muundo ambapo moja ya thamani zake inaweza kuwa aina yoyote
Chaguo, Baadhi & Hakuna
Aina ya Chaguo inamaanisha kuwa thamani inaweza kuwa ya aina ya Baadhi (kuna kitu) au Hakuna:
Unaweza kutumia kazi kama vile is_some()
au is_none()
kuangalia thamani ya Chaguo.
Macros
Macros ni nguvu zaidi kuliko kazi kwa sababu zinaongezeka ili kuzalisha msimbo zaidi kuliko msimbo uliyoandika kwa mkono. Kwa mfano, saini ya kazi lazima itangaze idadi na aina ya vigezo ambavyo kazi ina. Macros, kwa upande mwingine, inaweza kuchukua idadi isiyojulikana ya vigezo: tunaweza kuita println!("hello")
na hoja moja au println!("hello {}", jina)
na hoja mbili. Pia, macros zinaongezeka kabla ya mkusanyaji kufasiri maana ya msimbo, kwa hivyo macro inaweza, kwa mfano, kutekeleza tabia kwenye aina iliyoombwa. Kazi haiwezi, kwa sababu inaitwa wakati wa kukimbia na tabia inahitaji kutekelezwa wakati wa kukusanya.
Endelea
Kuendelea ni mchakato wa kurudia hatua au vitendo kwa mfululizo. Katika programu, kuendelea kunahusisha kutumia mzunguko au kisanduku cha kudhibiti ili kurudia hatua au kifungo cha msimbo mara kadhaa. Hii inaweza kuwa muhimu wakati unahitaji kufanya kitendo fulani mara kadhaa au kuchambua data nyingi.
Katika lugha ya programu ya Rust, unaweza kutumia mzunguko wa loop
, while
, au for
kutekeleza kuendelea. Mzunguko wa loop
unarudia hatua zilizomo ndani yake hadi kisanduku cha kudhibiti kisitishwe. Mzunguko wa while
unarudia hatua zilizomo ndani yake wakati hali fulani inatimizwa. Mzunguko wa for
unarudia hatua zilizomo ndani yake kwa kila kipengee katika mkusanyiko uliopewa.
Kwa mfano, hapa kuna jinsi ya kutumia mzunguko wa loop
katika Rust:
Hapa kuna jinsi ya kutumia mzunguko wa while
katika Rust:
Hapa kuna jinsi ya kutumia mzunguko wa for
katika Rust:
Kwa kutumia mzunguko huu, unaweza kuendelea kurudia hatua au vitendo kwa urahisi katika programu yako ya Rust.
Sanduku la Kurejesha
Sanduku la kurejesha ni mbinu ya kurejesha kiotomatiki ambayo inaruhusu kazi ya kurejesha kujirudia yenyewe hadi hali ya kutokea itakapokidhiwa. Mbinu hii inategemea wito wa kazi yenyewe ndani ya kazi hiyo hiyo.
Kwa mfano, fikiria una kazi inayoitwa kazi_yangu
ambayo inahitaji kufanya kitu fulani. Unaweza kutumia sanduku la kurejesha ili kuhakikisha kuwa kazi hiyo inajirudia hadi hali fulani itakapokidhiwa. Hii inaweza kuwa muhimu katika kesi ambapo unahitaji kufanya jaribio la kurejesha kwa muda fulani au kufuatilia hali fulani hadi itakapobadilika.
Kwa kutumia sanduku la kurejesha, unaweza kuandika kificho cha kurejesha ambacho kinajumuisha wito wa kazi yenyewe. Hii inamaanisha kuwa kazi yako itajirudia yenyewe hadi hali fulani itakapokidhiwa. Kwa mfano:
Katika mfano huu, kazi ya kazi_yangu
itajirudia yenyewe hadi hali ya hali_haijakidhiwa
itakapokidhiwa. Hii inaruhusu kazi hiyo kujirudia kiotomatiki hadi hali inayotarajiwa itakapofikiwa.
Sanduku la kurejesha ni mbinu muhimu katika programu za kiotomatiki na inaweza kutumika kwa ufanisi katika kazi za kurudia-rudia na kufuatilia hali.
kama
The if
statement is used to execute a block of code only if a certain condition is true. If the condition is false, the code block is skipped.
Syntax:
Example:
kama
Kauli ya kama
hutumiwa kutekeleza kikundi cha nambari ikiwa tu hali fulani ni kweli. Ikiwa hali ni ya uwongo, kikundi cha nambari kinapuuzwa.
Muundo:
Mfano:
kulinganisha
match
ni neno la msingi katika Rust ambalo linaruhusu kulinganisha thamani ya kipekee na kutekeleza hatua tofauti kulingana na matokeo ya kulinganisha. Inafanana na switch
katika lugha zingine.
Sintaksia ya match
ni kama ifuatavyo:
Katika mfano huu, expression
ni thamani ambayo tunataka kulinganisha na pattern
. Kila pattern
inalinganishwa kwa utaratibu, na hatua zinazofuata zinatekelezwa kwa pattern
ya kwanza inayolingana.
Kwa mfano, ikiwa tunataka kuchukua hatua tofauti kulingana na siku ya wiki, tunaweza kutumia match
kama ifuatavyo:
Katika mfano huu, tunalinganisha day
na kila pattern
ya siku ya wiki. Ikiwa day
inalingana na pattern
fulani, basi hatua inayofuata inatekelezwa. Ikiwa day
hailingani na patterns zozote, hatua ya mwisho inatekelezwa.
mzunguko (usio na mwisho)
wakati
The while
loop is used to repeatedly execute a block of code as long as a specified condition is true. The condition is checked before each iteration, and if it evaluates to true, the code block is executed. Once the condition becomes false, the loop is terminated and the program continues with the next line of code after the loop.
Syntax:
Example:
In this example, the code block inside the while
loop will be executed as long as the count
variable is less than 5. The value of count
is printed and incremented by 1 in each iteration.
kwa
ikiwa let
if let
ni njia ya kifupi ya kuchunguza na kufanya kitendo ikiwa kuna chaguo moja tu la kufanikiwa. Inafanya kazi kwa kuchunguza ikiwa chaguo linaweza kufanikiwa na kisha kutekeleza kitendo kilichomo ndani ya block ya if let
ikiwa chaguo linapatikana.
Sintaksia ya if let
ni kama ifuatavyo:
Katika mfano huu, optional_value
ni chaguo ambalo linaweza kuwa na thamani au linaweza kuwa tupu. Ikiwa optional_value
lina thamani, thamani hiyo itahifadhiwa katika value
na kitendo kilichomo ndani ya block ya if let
kitatekelezwa. Ikiwa optional_value
ni tupu, kitendo kilichomo ndani ya block ya else
kitatekelezwa badala yake.
wakati aina
while let
ni muundo wa kudhibiti wa Rust ambao unaruhusu kutekeleza kifungu cha msimbo wakati aina fulani inalingana na kigezo kilichotolewa. Inafanana na while
kwa njia ya kawaida, lakini inaruhusu kuchambua na kufikia thamani ya kigezo kwa urahisi.
Muundo wa while let
ni kama ifuatavyo:
Katika mfano huu, while let
itaendelea kutekeleza msimbo ndani ya mabano ya wakati thamani ya kigezo
inalingana na Some(value)
. Some(value)
inawakilisha hali ambapo kigezo kina thamani isiyo tupu, na thamani hiyo inapatikana kwa jina value
ndani ya kifungu cha msimbo.
Kwa mfano, ikiwa tuna kigezo cha aina Option<i32>
kinachowakilisha nambari au tupu, tunaweza kutumia while let
kutekeleza msimbo wakati kigezo kina nambari:
Katika mfano huu, msimbo ndani ya while let
utatekelezwa mara moja tu kwa sababu thamani ya kigezo
ni Some(5)
. Baada ya kutekeleza msimbo, thamani ya kigezo
inabadilishwa kuwa tupu (None
), na kwa hivyo, while let
haitatekelezwa tena.
Traits
Unda njia mpya kwa ajili ya aina fulani
Majaribio
Majaribio ni sehemu muhimu ya mchakato wa kupima usalama wa mfumo. Kwa kutumia majaribio, unaweza kugundua kasoro na mapungufu katika mfumo wako na kuchukua hatua za kurekebisha. Kuna aina tofauti za majaribio ambayo unaweza kufanya, kama vile majaribio ya kuingilia kati (interception tests), majaribio ya kuvunja (break tests), na majaribio ya kusimamisha (halt tests).
Majaribio ya Kuingilia Kati (Interception Tests)
Majaribio ya kuingilia kati yanahusisha kuchunguza na kurekodi mawasiliano kati ya seva na wateja. Kwa kufanya hivyo, unaweza kugundua ikiwa kuna mawasiliano yoyote yasiyofaa au ya kutiliwa shaka yanayotokea. Unaweza kutumia zana kama Wireshark au tcpdump kufanya majaribio haya.
Majaribio ya Kuvunja (Break Tests)
Majaribio ya kuvunja yanahusisha kujaribu kuvunja mfumo wa usalama kwa kutumia mbinu tofauti za kuvunja. Hii inaweza kujumuisha kujaribu kuvunja nywila, kuingia kwa kutumia udhaifu wa programu, au kujaribu kuvunja mfumo wa kizuizi. Kwa kufanya majaribio haya, unaweza kugundua mapungufu katika mfumo wako na kuchukua hatua za kurekebisha.
Majaribio ya Kusimamisha (Halt Tests)
Majaribio ya kusimamisha yanahusisha kujaribu kusimamisha au kuharibu mfumo wa kompyuta. Hii inaweza kujumuisha kujaribu kusimamisha huduma muhimu, kuharibu faili muhimu, au kusababisha mfumo kushindwa kufanya kazi. Kwa kufanya majaribio haya, unaweza kugundua udhaifu katika mfumo wako na kuchukua hatua za kuzuia na kurekebisha.
Threading
Arc
Arc inaweza kutumia Clone kuunda marejeleo zaidi juu ya kitu ili kuyapitisha kwenye nyuzi. Wakati kumbukumbu ya mwisho inayoelekeza kwa thamani inatoka kwenye wigo, kivinjari kinatupwa.
Nyuzi
Katika kesi hii tutapitisha nyuzi kwa kigezo ambacho itaweza kubadilisha
Last updated