Rust - menedżer pakietów

Cargo jest menedżerem paczek dla RUST. Działa jak narzędzie i zarządza projektami Rusta.

W poniższej tabeli wymieniono niektóre powszechnie używane polecenia dotyczące ładunku -

Sr.No Polecenie i opis
1

cargo build

Kompiluje bieżący projekt.

2

cargo check

Analizuje bieżący projekt i raportuje błędy, ale nie tworzy plików obiektów.

3

cargo run

Kompiluje i wykonuje src / main.rs.

4

cargo clean

Usuwa katalog docelowy.

5

cargo update

Aktualizuje zależności wymienione w Cargo.lock.

6

cargo new

Tworzy nowy projekt ładunku.

Cargo pomaga pobierać biblioteki stron trzecich. Dlatego działa jak menedżer pakietów. Możesz także tworzyć własne biblioteki. Cargo jest instalowane domyślnie podczas instalacji Rusta.

Aby utworzyć nowy projekt ładunku, możemy skorzystać z poleceń podanych poniżej.

Utwórz skrzynkę binarną

cargo new project_name --bin

Utwórz skrzynię biblioteki

cargo new project_name --lib

Aby sprawdzić aktualną wersję ładunku, wykonaj następujące polecenie -

cargo --version

Ilustracja - Utwórz projekt binarnego ładunku

Gra generuje losową liczbę i prosi użytkownika o jej odgadnięcie.

Krok 1 - Utwórz folder projektu

Otwórz terminal i wpisz następujące polecenie cargo new guess-game-app --bin .

Spowoduje to utworzenie następującej struktury folderów.

guess-game-app/
   -->Cargo.toml
   -->src/
      main.rs

Polecenie cargo new służy do tworzenia skrzyni. --Bin Flaga wskazuje, że paka tworzony jest binarnym paka. Skrzynie publiczne są przechowywane w centralnym repozytorium zwanym crates.iohttps://crates.io/.

Krok 2 - Dołącz odwołania do bibliotek zewnętrznych

Ten przykład musi wygenerować liczbę losową. Ponieważ wewnętrzna biblioteka standardów nie zapewnia logiki generowania liczb losowych, musimy spojrzeć na zewnętrzne biblioteki lub skrzynki. Użyjmyrandskrzynkę dostępną na stronie crates.io crates.io

Plik https://crates.io/crates/randto biblioteka rdzy służąca do generowania liczb losowych. Rand zapewnia narzędzia do generowania liczb losowych, konwertowania ich na przydatne typy i rozkłady, a także niektóre algorytmy związane z losowością.

Poniższy diagram przedstawia witrynę crate.io i wyniki wyszukiwania rand crate.

Skopiuj wersję rand crate do pliku Cargo.toml rand = "0.5.5" .

[package]
name = "guess-game-app"
version = "0.1.0"
authors = ["Mohtashim"]

[dependencies]
rand = "0.5.5"

Krok 3: Skompiluj projekt

Przejdź do folderu projektu. Wykonaj poleceniecargo build w oknie terminala -

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

Skrzynka rand i wszystkie zależności przechodnie (wewnętrzne zależności rand) zostaną automatycznie pobrane.

Krok 4 - Zrozumienie logiki biznesowej

Zobaczmy teraz, jak działa logika biznesowa w grze w zgadywanie liczb -

  • Gra początkowo generuje losową liczbę.

  • Użytkownik jest proszony o wprowadzenie danych wejściowych i odgadnięcie liczby.

  • Jeśli liczba jest mniejsza niż liczba wygenerowana, drukowany jest komunikat „Za mało”.

  • Jeśli liczba jest większa niż liczba wygenerowana, drukowany jest komunikat „Za dużo”.

  • Jeśli użytkownik wpisze numer wygenerowany przez program, gra zostanie zakończona.

Krok 5 - Edytuj plik main.rs

Dodaj logikę biznesową do pliku 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;
      }
   }
}

Krok 6 - Skompiluj i uruchom projekt

Wykonaj polecenie uruchomienia ładunku na terminalu. Upewnij się, że terminal wskazuje katalog projektu.

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