Rust - Gestore dei pacchetti
Cargo è il gestore di pacchetti per RUST. Funziona come uno strumento e gestisce i progetti Rust.
Alcuni comandi cargo di uso comune sono elencati nella tabella seguente:
Suor n | Comando e descrizione |
---|---|
1 | cargo build Compila il progetto corrente. |
2 | cargo check Analizza il progetto corrente e segnala gli errori, ma non crea file oggetto. |
3 | cargo run Compila ed esegue src / main.rs. |
4 | cargo clean Rimuove la directory di destinazione. |
5 | cargo update Aggiorna le dipendenze elencate in Cargo.lock. |
6 | cargo new Crea un nuovo progetto cargo. |
Cargo aiuta a scaricare librerie di terze parti. Pertanto, si comporta come un gestore di pacchetti. Puoi anche creare le tue librerie. Cargo viene installato di default quando installi Rust.
Per creare un nuovo progetto cargo, possiamo utilizzare i comandi riportati di seguito.
Crea una cassa binaria
cargo new project_name --bin
Crea una cassa della libreria
cargo new project_name --lib
Per verificare la versione corrente del carico, eseguire il seguente comando:
cargo --version
Illustrazione - Creare un progetto Binary Cargo
Il gioco genera un numero casuale e richiede all'utente di indovinare il numero.
Passaggio 1: creare una cartella del progetto
Apri il terminale e digita il seguente comando cargo new guess-game-app --bin .
Questo creerà la seguente struttura di cartelle.
guess-game-app/
-->Cargo.toml
-->src/
main.rs
Il comando cargo new viene utilizzato per creare una cassa. Il flag --bin indica che la cassa creata è una cassa binaria. Le casse pubbliche sono archiviate in un repository centrale chiamato crates.iohttps://crates.io/.
Passaggio 2: includere riferimenti a librerie esterne
Questo esempio deve generare un numero casuale. Poiché la libreria standard interna non fornisce la logica di generazione di numeri casuali, è necessario esaminare le librerie o le casse esterne. Usiamorandcrate disponibile sul sito web di crates.io crates.io
Il https://crates.io/crates/randè una libreria ruggine per la generazione di numeri casuali. Rand fornisce utilità per generare numeri casuali, per convertirli in tipi e distribuzioni utili e alcuni algoritmi relativi alla casualità.
Il diagramma seguente mostra il sito Web crate.io e il risultato della ricerca per rand crate.
Copia la versione di rand crate nel file Cargo.toml rand = "0.5.5" .
[package]
name = "guess-game-app"
version = "0.1.0"
authors = ["Mohtashim"]
[dependencies]
rand = "0.5.5"
Passaggio 3: compilare il progetto
Vai alla cartella del progetto. Esegui il comandocargo build nella finestra del terminale -
Updating registry `https://github.com/rust-lang/crates.io-index`
Downloading rand v0.5.5
Downloading rand_core v0.2.2
Downloading winapi v0.3.6
Downloading rand_core v0.3.0
Compiling winapi v0.3.6
Compiling rand_core v0.3.0
Compiling rand_core v0.2.2
Compiling rand v0.5.5
Compiling guess-game-app v0.1.0
(file:///E:/RustWorks/RustRepo/Code_Snippets/cargo-projects/guess-game-app)
Finished dev [unoptimized + debuginfo] target(s) in 1m 07s
La cassa rand e tutte le dipendenze transitive (dipendenze interne di rand) verranno scaricate automaticamente.
Passaggio 4: comprensione della logica di business
Vediamo ora come funziona la logica di business per il gioco di indovinare i numeri -
Il gioco genera inizialmente un numero casuale.
A un utente viene chiesto di inserire l'input e di indovinare il numero.
Se il numero è inferiore al numero generato, viene stampato un messaggio "Troppo basso".
Se il numero è maggiore del numero generato, viene stampato un messaggio "Troppo alto".
Se l'utente inserisce il numero generato dal programma, il gioco esce.
Passaggio 5: modifica il file main.rs
Aggiungi la logica aziendale al file main.rs.
use std::io;
extern crate rand;
//importing external crate
use rand::random;
fn get_guess() -> u8 {
loop {
println!("Input guess") ;
let mut guess = String::new();
io::stdin().read_line(&mut guess)
.expect("could not read from stdin");
match guess.trim().parse::<u8>(){ //remember to trim input to avoid enter spaces
Ok(v) => return v,
Err(e) => println!("could not understand input {}",e)
}
}
}
fn handle_guess(guess:u8,correct:u8)-> bool {
if guess < correct {
println!("Too low");
false
} else if guess> correct {
println!("Too high");
false
} else {
println!("You go it ..");
true
}
}
fn main() {
println!("Welcome to no guessing game");
let correct:u8 = random();
println!("correct value is {}",correct);
loop {
let guess = get_guess();
if handle_guess(guess,correct){
break;
}
}
}
Passaggio 6: compilare ed eseguire il progetto
Esegui il comando cargo run sul terminale. Assicurati che il terminale punti alla directory del progetto.
Welcome to no guessing game
correct value is 97
Input guess
20
Too low
Input guess
100
Too high
Input guess
97
You got it ..