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