Rust - Administrador de paquetes
Cargo es el administrador de paquetes de RUST. Esto actúa como una herramienta y gestiona los proyectos de Rust.
Algunos comandos de carga de uso común se enumeran en la siguiente tabla:
No Señor | Comando y descripción |
---|---|
1 | cargo build Compila el proyecto actual. |
2 | cargo check Analiza el proyecto actual e informa errores, pero no crea archivos de objeto. |
3 | cargo run Construye y ejecuta src / main.rs. |
4 | cargo clean Elimina el directorio de destino. |
5 | cargo update Actualiza las dependencias enumeradas en Cargo.lock. |
6 | cargo new Crea un nuevo proyecto de carga. |
Cargo ayuda a descargar bibliotecas de terceros. Por tanto, actúa como un administrador de paquetes. También puede crear sus propias bibliotecas. Cargo se instala de forma predeterminada al instalar Rust.
Para crear un nuevo proyecto de carga, podemos usar los comandos que se dan a continuación.
Crea una caja binaria
cargo new project_name --bin
Crea una caja de biblioteca
cargo new project_name --lib
Para verificar la versión actual de la carga, ejecute el siguiente comando:
cargo --version
Ilustración - Crear un proyecto de carga binaria
El juego genera un número aleatorio y le pide al usuario que adivine el número.
Paso 1: crea una carpeta de proyecto
Abra la terminal y escriba el siguiente comando cargo new guess-game-app --bin .
Esto creará la siguiente estructura de carpetas.
guess-game-app/
-->Cargo.toml
-->src/
main.rs
El comando cargo new se utiliza para crear una caja. La bandera --bin indica que la caja que se está creando es una caja binaria. Las cajas públicas se almacenan en un depósito central llamado crates.iohttps://crates.io/.
Paso 2: incluye referencias a bibliotecas externas
Este ejemplo necesita generar un número aleatorio. Dado que la biblioteca estándar interna no proporciona lógica de generación de números aleatorios, necesitamos buscar bibliotecas o cajas externas. Usemosrandcaja que está disponible en el sitio web crates.io crates.io
los https://crates.io/crates/randes una biblioteca de óxido para la generación de números aleatorios. Rand proporciona utilidades para generar números aleatorios, convertirlos en tipos y distribuciones útiles, y algunos algoritmos relacionados con la aleatoriedad.
El siguiente diagrama muestra el sitio web crate.io y el resultado de búsqueda de rand crate.
Copie la versión de rand crate en el archivo Cargo.toml rand = "0.5.5" .
[package]
name = "guess-game-app"
version = "0.1.0"
authors = ["Mohtashim"]
[dependencies]
rand = "0.5.5"
Paso 3: compila el proyecto
Navega a la carpeta del proyecto. Ejecuta el comandocargo build en la ventana de la terminal -
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 caja de rand y todas las dependencias transitivas (dependencias internas de rand) se descargarán automáticamente.
Paso 4: comprensión de la lógica empresarial
Veamos ahora cómo funciona la lógica empresarial para el juego de adivinanzas de números:
El juego genera inicialmente un número aleatorio.
Se le pide al usuario que ingrese una entrada y adivine el número.
Si el número es menor que el número generado, se imprime un mensaje "Demasiado bajo".
Si el número es mayor que el número generado, se imprime un mensaje "Demasiado alto".
Si el usuario ingresa el número generado por el programa, el juego sale.
Paso 5: edita el archivo main.rs
Agregue la lógica empresarial al archivo 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;
}
}
}
Paso 6: compile y ejecute el proyecto
Ejecuta el comando cargo run en la terminal. Asegúrese de que la terminal apunte al directorio del proyecto.
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 ..