Rust-aloittelijan opas: Pelistä ohjelmointiin, tutustu nopeasti Rust-ekosysteemiin
Rust-aloittelijan opas: Pelistä ohjelmointiin, tutustu nopeasti Rust-ekosysteemiin
Rust kehittyy nopeasti, eikä se ole vain ohjelmointikieli, vaan myös elinvoimainen ekosysteemi. Selviytymispeleistä suorituskykyiseen järjestelmäohjelmointiin, Rust on kaikkialla. Tämä artikkeli lähtee liikkeelle X/Twitterissä käydystä keskustelusta ja tarjoaa Rust-aloittelijoille nopean aloitusoppaan, joka kattaa Rustin käyttökohteet, oppimisresurssit ja joitain käytännöllisiä työkaluja.
I. Mikä Rust on? Miksi sitä kannattaa opetella?
Rust on järjestelmäohjelmointikieli, joka keskittyy turvallisuuteen, nopeuteen ja samanaikaisuuteen. Sen tavoitteena on ratkaista C:ssä ja C++:ssa yleisiä muistiturvallisuusongelmia ja tarjota samalla näiden kielten kanssa vertailukelpoinen tai jopa parempi suorituskyky.
Rustin edut:
- Muistiturvallisuus: Rustin omistusjärjestelmä ja lainaus tarkistaja voivat estää nollaosoittimia, datakilpailuja jne. käännösaikana.
- Korkea suorituskyky: Rust kääntyy tehokkaaksi konekoodiksi ja sillä on vahva nollakustannus abstraktio kyky.
- Samanaikainen turvallisuus: Rustin tyyppijärjestelmä voi varmistaa samanaikaisen koodin turvallisuuden ja välttää datakilpailuja.
- Alustojen välinen: Rust tukee useita käyttöjärjestelmiä ja arkkitehtuureja, mukaan lukien Windows, Linux, macOS, WebAssembly jne.
- Aktiivinen yhteisö: Rustilla on elinvoimainen yhteisö, joka tarjoaa runsaasti kirjastoja, työkaluja ja tukea.
Rustin käyttökohteet:
- Käyttöjärjestelmät ja sulautetut järjestelmät: Korkean suorituskyvyn ja turvallisuuden vuoksi Rust sopii erinomaisesti käyttöjärjestelmien ytimien, ohjainten ja sulautettujen laitteiden ohjelmistojen kehittämiseen.
- WebAssembly (Wasm): Rust voidaan kääntää Wasmiksi, jolloin suorituskykyistä koodia voidaan suorittaa selaimessa.
- Komentorivityökalut: Rust tarjoaa tehokkaan komentorivityökalujen kehityskehyksen, kuten
clapjastructopt. - Verkko-ohjelmointi: Rustin
tokio-kirjasto tarjoaa asynkronisen suoritusympäristön, joka helpottaa suorituskykyisten verkkosovellusten kirjoittamista. - Pelikehitys: Vaikka Rust ei ole yhtä suosittu kuin C++, se on nousemassa pelikehitysalalla. Esimerkiksi avoimen lähdekoodin selviytymispeli
Ruston kehitetty Unity-moottorilla ja C#:lla, mutta palvelinpuolen logiikkaa voidaan optimoida Rustilla.
II. Pelistä Rust Rust-ohjelmointikieleen
X/Twitterissä käydyssä keskustelussa mainittiin selviytymispeli Rust, jolla on läheinen yhteys Rust-ohjelmointikieleen. Vaikka niillä on sama nimi, ne ovat eri asioita. Rust-peli on monen pelaajan online-selviytymispeli, kun taas Rust on ohjelmointikieli, jota käytetään erilaisten ohjelmistojen rakentamiseen.
Peli Rust:
- On monen pelaajan online-selviytymispeli, jossa pelaajien on selviydyttävä erämaassa, rakennettava tukikohtia ja oltava vuorovaikutuksessa muiden pelaajien kanssa.
- Kehitetty Unity-moottorilla ja C#:lla.
- Voidaan ostaa Steamista, ja siellä on usein tarjouksia.
Rust-ohjelmointikieli:
- Käytetään erilaisten ohjelmistojen kehittämiseen, mukaan lukien käyttöjärjestelmät, selainmoottorit, verkkopalvelimet, pelit jne.
- Avoimen lähdekoodin ja alustojen välinen.
- Sillä on tehokas tyyppijärjestelmä ja muistiturvallisuusominaisuudet.
Jos olet Rust-pelin pelaaja ja haluat oppia Rust-ohjelmointikieltä, voit harkita seuraavia vaiheita:
- Asenna Rust-työkaluketju: Lataa ja asenna
rustuposoitteesta , se on Rustin versiohallintatyökalu. - Opi Rustin perusteet: Lue virallinen opetusohjelma "The Rust Programming Language" (yleisesti tunnettu nimellä "The Book") ja opi Rustin perussyntaksi, omistusjärjestelmä, lainaus tarkistaja jne.
- Harjoittele projekteja: Vahvista oppimaasi kirjoittamalla yksinkertaisia komentorivityökaluja, verkkopalvelimia tai pelejä.
- Osallistu yhteisöön: Liity Rust-yhteisöön, kommunikoi muiden Rust-kehittäjien kanssa ja opi heidän kokemuksistaan.## III. Rust-kehitysympäristön pystytys
Rust-kehitysympäristön pystyttäminen on hyvin yksinkertaista, tarvitsee vain asentaa rustup. rustup asentaa automaattisesti Rust-kääntäjän, standardikirjaston ja muut tarvittavat työkalut.
Vaiheet:
- Lataa
rustup: Vieraile osoitteessa ja lataa käyttöjärjestelmääsi vastaavarustup-asennusohjelma. - Suorita asennusohjelma: Noudata asennusohjelman ohjeita.
- Määritä ympäristömuuttujat:
rustupmäärittää ympäristömuuttujat automaattisesti, mutta voit myös määrittää ne manuaalisesti. - Varmista asennus: Avaa pääte ja suorita
rustc --versionjacargo --version. Jos versiot näkyvät oikein, asennus onnistui.
Koodiesimerkki:
rustc --version # Tarkista Rust-kääntäjän versio
cargo --version # Tarkista Cargo-pakettienhallinnan versio
IV. Rustin perussyntaksin nopea johdanto
Seuraavassa on joitain Rustin perussyntakseja, jotka voivat auttaa sinua pääsemään nopeasti alkuun:
-
Muuttujien määrittely:
let x = 5; // Muuttumaton muuttuja let mut y = 10; // Muuttuva muuttuja const PI: f64 = 3.1415926; // Vakio -
Tietotyypit:
-
Kokonaistyyppi:
i8,i16,i32,i64,i128,u8,u16,u32,u64,u128,isize,usize -
Liukuluku:
f32,f64 -
Totuusarvo:
bool(true,false) -
Merkki:
char(Unicode-merkki) -
Merkkijono:
String,&str -
Tuple:
(i32, f64, char) -
Taulukko:
[i32; 5] -
Viipale:
&[i32] -
Rakenne:
struct Point { x: i32, y: i32, } -
Enum:
enum Color { Red, Green, Blue, }
-
-
Funktiot:
fn add(x: i32, y: i32) -> i32 { x + y } -
Ohjausrakenteet:
-
if-lause:if x > 5 { println!("x is greater than 5"); } else if x == 5 { println!("x is equal to 5"); } else { println!("x is less than 5"); } -
loop-silmukka:loop { println!("This will loop forever"); break; // Poistu silmukasta } ```Rust on nykyaikainen järjestelmäohjelmointikieli, joka keskittyy turvallisuuteen, nopeuteen ja rinnakkaisuuteen. Se on erinomainen valinta suorituskykyherkkiin sovelluksiin, kuten käyttöjärjestelmiin, pelimoottoreihin ja web-palvelimiin. Tässä artikkelissa käymme läpi Rustin perusteet ja annamme sinulle hyvän pohjan jatko-opintoihin.
-
I. Asennus ja ympäristön määritys
-
Rustin asennus:
- Lataa ja asenna Rust viralliselta verkkosivustolta: https://www.rust-lang.org/tools/install
- Asennuksen aikana
rustupasennetaan, mikä on Rustin versioiden hallintatyökalu.
-
Ympäristön määritys:
- Asennuksen jälkeen sulje ja avaa komentorivi uudelleen, jotta ympäristömuuttujat päivittyvät.
- Varmista, että Rust on asennettu oikein suorittamalla komento
rustc --version.
II. Peruskäsitteet
-
Hello, World!
-
Luo uusi tiedosto nimeltä
main.rsja kirjoita seuraava koodi:fn main() { println!("Hello, World!"); } -
Käännä ja suorita:
rustc main.rs ./main
-
-
Muuttujat ja tietotyypit:
-
Rust on staattisesti tyypitetty kieli, mutta se voi usein päätellä tyypin.
-
Muuttujat ovat oletusarvoisesti muuttumattomia (immutable).
let x = 5; // x on muuttumaton let mut y = 10; // y on muuttuva y = 20; println!("x = {}, y = {}", x, y); -
Yleisiä tietotyyppejä ovat:
i32: 32-bittinen kokonaislukuf64: 64-bittinen liukulukubool: boolean-arvo (true tai false)char: Unicode-merkkiString: merkkijono
-
-
Funktiot:
-
Funktiot määritellään avainsanalla
fn.fn add(a: i32, b: i32) -> i32 { a + b // Ei tarvitse `return`-avainsanaa, viimeinen lauseke palautetaan } fn main() { let sum = add(5, 3); println!("Sum = {}", sum); }
-
-
Kommentit:
- Yksiriviset kommentit alkavat
//. - Moniriviset kommentit ovat
/* ... */.
- Yksiriviset kommentit alkavat
-
Ohjausrakenteet:
-
if-lausekkeet:let number = 7; if number < 5 { println!("condition was true"); } else { println!("condition was false"); } -
loop-silmukka:loop { println!("again!"); break; // Poistu silmukasta } -
while-silmukka:let mut i = 0; while i < 5 { println!("i = {}", i); i += 1; } -
for-silmukka:let a = [10, 20, 30, 40, 50]; for element in a.iter() { println!("the value is: {}", element); }
-
-
Omistajuus (Ownership), Lainaus (Borrowing) ja Elinikä (Lifetimes):
-
Nämä ovat Rustin ydinkonsepteja, jotka takaavat muistiturvallisuuden.
-
Omistajuus: Jokaisella arvolla on muuttuja, joka on sen omistaja. Kun omistaja poistuu scope:sta, arvo vapautetaan.
-
Lainaus: Mahdollistaa pääsyn arvoon ilman omistajuuden siirtämistä. Lainoja voi olla joko muuttumattomia (
&) tai muuttuvia (&mut). -
Elinikä: Takaa, että lainatut viittaukset ovat voimassa niin kauan kuin niitä tarvitaan.
fn main() { let s1 = String::from("hello"); let len = calculate_length(&s1); // Lainataan s1:n viittaus println!("The length of '{}' is {}.", s1, len); } fn calculate_length(s: &String) -> usize { // s on viittaus Stringiin s.len() } // s poistuu scope:sta, mutta koska se ei omista viitattua arvoa, Stringiä ei pudoteta
-
III. Structit ja Enumit
-
Structit (rakenteet):
-
Structit ovat tapoja ryhmitellä liittyviä tietoja.
struct User { username: String, email: String, sign_in_count: u64, active: bool, } fn main() { let user1 = User { email: String::from("someone@example.com"), username: String::from("someusername123"), active: true, sign_in_count: 1, }; println!("Username: {}", user1.username); }
-
-
Enumit (luettelot):
-
Enumit mahdollistavat arvon olevan yksi monista mahdollisista vaihtoehdoista.
enum IpAddrKind { V4(String), V6(String), } fn main() { let home = IpAddrKind::V4(String::from("127.0.0.1")); let loopback = IpAddrKind::V6(String::from("::1")); }
-
IV. Virheiden käsittely
-
Resulttyyppi:-
Rustissa virheiden käsittelyyn käytetään
Result-tyyppiä, joka voi olla jokoOk(T)(onnistuminen) taiErr(E)(virhe).use std::fs::File; use std::io::ErrorKind; fn main() { let f = File::open("hello.txt"); let f = match f { Ok(file) => file, Err(error) => match error.kind() { ErrorKind::NotFound => match File::create("hello.txt") { Ok(fc) => fc, Err(e) => panic!("Problem creating the file: {:?}", e), }, other_error => { panic!("Problem opening the file: {:?}", other_error) } }, }; }
-
V. Käytännölliset työkalut ja oppimisresurssit
- Cargo: Rustin pakettienhallinta ja rakennustyökalu, jota käytetään riippuvuuksien hallintaan, projektien rakentamiseen ja testien suorittamiseen.
- Rust Analyzer: Tehokas Rust-kielen palvelin, joka tarjoaa koodin täydennystä, syntaksivirheiden tarkistusta, refaktorointia jne. Suositellaan asentamaan vastaava laajennus VS Codeen.
- Clippy: Rust-koodin staattinen analyysityökalu, joka voi tarkistaa koodin mahdolliset ongelmat ja antaa parannusehdotuksia.
- crates.io: Rustin pakettivarasto, samanlainen kuin npm (JavaScript) tai PyPI (Python).
- Virallinen dokumentaatio: Sisältää Rust-kielen täydellisen dokumentaation.
- Rust by Example: Tarjoaa suuren määrän Rust-koodiesimerkkejä.
- The Rust Programming Language (The Book): Rustin virallinen opas, erittäin suositeltavaa lukea.
- Rustlings: Interaktiivinen Rust-oppimistyökalu, jonka avulla voit oppia Rustia ratkaisemalla sarjan harjoituksia.
- Verkkokurssit: Udemy, Coursera jne. -alustoilla on monia Rust-verkkokursseja.
VI. Syvällisempiä opintosuuntia
- Asynkroninen ohjelmointi (async/await): Kirjoita suorituskykyisiä samanaikaisia ohjelmia käyttämällä
tokio- taiasync-std-kirjastoja. - WebAssembly (Wasm): Käännä Rust-koodi Wasmiksi ja suorita se selaimessa.
- Sulautettu kehitys: Kehitä sulautettujen järjestelmien ohjelmistoja Rustilla.
- Blockchain-kehitys: Kehitä blockchain-sovelluksia Rustilla, kuten Solanan älykkäät sopimukset.





