Prepričajte se, da so vaši projekti Rust dobro organizirani, da jih je sčasoma lažje vzdrževati.

Rust je odlična izbira za izdelavo kompleksnih in zanesljivih aplikacij. Ena bistvenih veščin za razvoj aplikacij Rust je učinkovito strukturiranje vaših projektov, vključno z vključevanjem paketov tretjih oseb.

Učinkovita projektna organizacija je ključnega pomena za razvoj aplikacij Rust. Dobro strukturirane aplikacije Rust izboljšujejo sodelovanje in enostavne integracije aplikacij tretjih oseb, kar bistveno zmanjša čas in trud, potreben za razvoj aplikacije. Rust ponuja vgrajen upravitelj paketov in druga orodja za učinkovito organizacijo in upravljanje kode.

Nastavitev projektov Rust

Nastavitev projektov Rust je enostavna ko namestite Rust na svoj računalnik; lahko uporabite Cargo (Rustov vgrajeni upravitelj paketov in gradbeni sistem) za ustvarjanje in konfiguracijo projekta Rust. Podobno je drugim upraviteljem paketov, kot je npm za Node.js in pip za Python. Cargo upravlja odvisnosti, sestavlja kodo in ustvarja dokumentacijo, zaradi česar je bistveno orodje za razvoj Rust.

instagram viewer

Zaženite ta ukaz, da preverite svojo namestitev Cargo:

tovor --različica

Ukaz prikaže nameščeno različico Cargo.

Nov projekt Rust lahko ustvarite z tovor nov ukaz. Določiti boste morali ime projekta.

tovor nov moj_projekt

Ukaz bo ustvaril nov imenik v trenutnem imeniku, ki vsebuje osnovne datoteke, ki jih potrebujete za vaš projekt Rust, vključno z tovor.toml datoteko za upravljanje odvisnosti vašega projekta.

Imenski prostor paketa Rust

Paketi in zaboji so bistvene komponente v Rustu. Zaboji so knjižnice ali binarne datoteke, ki jih lahko razvijalci Rust uporabljajo in prevedejo za določeno uporabo, paketi pa so zbirka zabojev. Paketi običajno vsebujejo zaboj, ki vsebuje kodo za večkratno uporabo, in dvojiško datoteko, ki zagotavlja CLI za zaboj knjižnice.

Zaboji morajo vsebovati Cargo.toml datoteka, ki vsebuje metapodatke o paketu, kot so njegovo ime, različica, odvisnosti in skripti za gradnjo.

Paketi Rust upoštevajo konvencijo o poimenovanju, da se izognejo konfliktom poimenovanja med paketi. Imena paketov morajo biti globalno edinstvena, z malimi črkami in vsebovati samo črke, števke in vezaje. Če ime paketa vsebuje več besed, jih ločite z vezaji, npr. hiperstrežnik.

Do kode znotraj imenskega prostora paketa Rust lahko dostopate z uporaba ključna beseda, ki ji sledijo imena paketov in zabojev.

Tukaj je primer uvoza Rng funkcija iz a rand zaboj:

uporaba rand:: Rng;

Ustvarite lahko več imenskih prostorov za pakete. Ko ustvarite mapo, ustvarite nov imenski prostor, do katerega lahko dostopate z zapisom pike, da določite pot do identifikatorja.

V Rustu je lahko več imenskih prostorov za pakete. Ko ustvarite mapo, ustvarite nov imenski prostor. Za dostop do kode iz drugega imenskega prostora uporabite zapis s piko, da določite pot do identifikatorja.

Tukaj je primer dostopa do funkcije iz drugega imenskega prostora:

// datoteka v imenskem prostoru folder1
pubfnmapo() -> u32 {
// neko telo funkcije tukaj
vrnitev0;
}

// datoteka v imenskem prostoru folder2
uporaba mapa1::mapa;

pubfnimenik() {
// dostop do funkcije mape iz imenskega prostora folder1
pustiti folder_func = folder();
}

Program definira dva modula Rust v različnih imenskih prostorih, mapa1 in mapa2 oz. The mapa1 modul vsebuje javno funkcijo mapo ki vrne 32-bitno vrednost celega števila brez predznaka.

The mapa2 modul uvozi mapo funkcijo od mapa1 imenski prostor z uporaba ključna beseda, ki omogoča imenik funkcijo za dostop do mapo funkcijo od mapa1 modul. The imenik funkcija pokliče mapo in vrnjena vrednost je dodeljena folder_func spremenljivka.

Ime identifikatorjev iz paketa ali zaboja boste morali napisati z veliko začetnico, če jih želite izvoziti. Ko izvozite identifikator, omogočite dostop do njega v drugih paketih, ki uporabljajo kodo.

Tukaj je primer javne funkcije, ki jo je mogoče izvoziti.

// funkcija izvožena v druge pakete in zaboje
pubfnMoja funkcija() {
// neko telo funkcije tukaj
}

Uporabiti boste morali tudi pub ključna beseda. V Rustu je pub ključna beseda je okrajšava za javnosti. Ko funkcija, struktura, enum, kateri koli podatkovni tip Rust ali modul označen s ključno besedo pub, postane dostopen zunaj svojega modula. Element je zaseben za svoj modul brez ključne besede pub in je do njega mogoče dostopati samo znotraj njega.

Definiranje modulov za nadzor obsega in zasebnosti

Za nadzor obsega in zasebnosti v programih Rust lahko uporabite module. Moduli vam omogočajo organiziranje kode v logične enote, ki jih je lažje upravljati in vzdrževati.

Module lahko deklarirate z mod ključna beseda, ki ji sledita ime modula in zavit oklepaj. Definiranje novega modula ustvari nov imenski prostor za njegovo vsebino, kar pomeni, da funkcije, strukture ali druge postavke, definirane znotraj modula, so dostopne samo znotraj modula, razen če jih izrecno izvozite njim.

Moduli pomagajo preprečiti spore pri poimenovanju, zaradi česar je koda bolj intuitivna za razumevanje.

Tukaj je sintaksa za preprost modul:

mod moj_modul {
// vsebina modula je tukaj
}

Znotraj modula lahko definirate spremenljivke, funkcije, strukture, enume in druge vrste.

mod moj_modul {
fndodaj_števila(a: i32, b: i32) -> i32 {
a + b
}
}

Lahko uporabite pub ključno besedo za izvoz funkcije in dostop do funkcije v drugih delih programa.

mod moj_modul {
pubfndodaj_števila(a: i32, b: i32) -> i32 {
a + b
}
}

Zdaj lahko pokličete dodaj_števila funkcijo iz drugih delov vašega programa.

Zasebnost modulov lahko nadzorujete tudi z pub ključna beseda na definicijah modulov.

pubmod moj_modul {
pubfndodaj_števila(a: i32, b: i32) -> i32 {
a + b
}
}

Zdaj pa moj_modul modul je javen in do njega lahko dostopate iz drugih modulov.

Če morate omogočiti dostop do modula ali predmeta določenemu modulu ali nizu modulov, lahko uporabite pub (zaboj) ključna beseda. The pub (zaboj) ključna beseda naredi predmet dostopen iz modulov v istem zaboju, ne pa iz modulov v drugih zabojih.

mod moj_modul {
pubstructMyStruct {
pub(zaboj) nekaj_polja: u32,
}
}

Zdaj lahko dostopate do določenega elementa (v tem primeru do neko_polje polje MyStruct struct) v drugih delih vašega programa.

fnglavni() {
pustiti my_struct = my_module:: MyStruct { some_field: 42 };
println!("{}", moja_struktura.neko_polje);
}

The moja_struktura spremenljivka je primerek MyStruct struct. Spremenljivka dostopa do strukture z ločilom poti (::). The glavni funkcija natisne neko_polje polje strukture z println! makro.

Rustov model lastništva zagotavlja varnost pomnilnika

Organiziranje kode Rust je eden od načinov, da zagotovite, da je vaša koda enostavna za vzdrževanje in podporo skozi čas. Lažje se je spoprijeti z napakami in zagotoviti varnost v dobro organizirani kodi, ki sledi pravilom in konvencijam skupnosti Rust.

Rust privzeto zagotavlja, da so programi varni v pomnilniku z vgrajenim modelom lastništva. Model lastništva zagotavlja varnost pomnilnika z zagotavljanjem, da imajo spremenljivke v pomnilniku enega edinstvenega lastnika. Model lastništva preprečuje sledi podatkov in številne vrste pomnilniških napak.