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