Este es un pequeño programa que lee un número de la consola y lo imprime de vuelta. Está basado en la primera parte del tutorial donde se guía a crear un juego de adivina el número en el libro de Rust: https://doc.rust-lang.org/book/ch02-00-guessing-game-tutorial.html
Hice un directorio llamado "demo_guess_game" usando
cargo new
. Y el código que usé y modifiqué en el "main.rs" es el siguiente:1 2 3 4 5 6 7 8 9 10 11 12 13 14 | use std::io; fn main() { println!("¡Adivina el número!"); println!("Por favor, inserte el número que desea adivinar."); let mut guess = String::new(); io::stdin().read_line(&mut guess) .expect("Hubo un fallo al leer la línea"); println!("El número que intentó es: {}", guess); } |
Desde la última entrada descubrí que la razón por la que no se podía ejecutar bien el "cargo build" era porque mi antivirus lo marcaba como amenaza y lo escaneaba. Resolví esto ajustando mi antivirus para que no lo marque como amenaza. Entonces, el resultado de ejecutar
cargo build
y cargo run
fue el siguiente:![]() |
Demostración del resultado de correr el código anterior |
use std::io;
está linea sirve para llamar la librería estándar y obtener los métodos de entrada y salida (input/output, io). En este caso la función "read_line" que usamos en la línea 10.fn main() {
es una declaración del método "main". La ejecución del código siempre empieza en el método "main".println!("¡Adivina el número!");
la parte que dice println! es una macro. Las macros es una forma poderosa de escribir código que se desdobla en más código. Durante la compilación se convierten en líneas de código separadas, es decir usar una macro es un atajo para ahorrarnos escribir líneas de código individuales. Otra cosa que resaltar es que Rust nos aceptó los caracteres en español "¡" y "ú"; y también está mostrando estos correctamente en la consola.let mut guess = String::new();
esta línea crea/declara ("let") una variable modificable ("mut") llamada "guess" y esta se liga a un objecto String modificable. De forma predeterminada en Rust todos los tipos básicos son fijos y no se pueden modificario::stdin().read_line(&mut guess).expect("Hubo un fallo al leer la línea");
es la línea más complicada porque llama la función "stdin" del paquete "io", llama el método "read_line" para leer una línea. Este método "read_line" requiere que le prestemos una referencia mutable a la variable "guess" para que la actualice y nos la regrese a "main" (el dueño de la variable). Esto se tiene que hacer de esta forma por la lógica de Rust en donde de forma predeterminada las variables no son modificables/mutables. Finalmente la parte final de ".expect" sirve para regresar el resultado o imprimir el error "Hubo un fallo al leer la línea" en caso que falle el método del sistema que llamamos.println!("El número que intentó es: {}", guess);
esta línea usa "{}" para indicar donde se colocarán las variables, en este caso "guess" es la única variable. En este caso está macro nos ayuda a imprimir la variable.
Navegación:
Primera parte
Siguiente parte
Parte anterior
No hay comentarios.:
Publicar un comentario