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 ..