Permitir la interacción del usuario con tu aplicación es una de las bases de cualquier lenguaje de programación. Rust facilita la comunicación a través de la interfaz de línea de comandos. Veamos cómo lograrlo:
Inputs en Rust
Para recibir datos del usuario, tienes que hacer uso de algunas librerías internas de Rust que acceden al sistema operativo y permiten que el usuario ingrese datos por consola.
fn main() {
println!("Ingrese su nombre:");
let mut nombre: String = String::new();
std::io::stdin().read_line(&mut nombre).unwrap();
nombre = nombre.trim().to_string();
println!("Bienvenido o bienvenida: {}", nombre);
}
Si tienes experiencia en lenguajes como C++ o Java, tal vez te sea más familiar algunos conceptos o palabras reservadas. Veamos qué es cada línea de código y cómo funciona:
println!("Ingrese su nombre:");
Un simple mensaje por consola para solicitarle el nombre al usuario.
let mut nombre: String = String::new();
Declaramos una variable del tipo string donde almacenaremos el nombre. Nota que puedes declarar un string con String o con &str. Las diferencias son mínimas, el primero te permite manipular el texto, hacer substrings o splits, pero ocupa algo más de espacio en memoria. El segundo es texto plano sin otra funcionalidad.
std::io::stdin().read_line(&mut nombre).unwrap();
La línea más complicada, std es una librería de Rust para acceder al sistema operativo. io significa inputs/outputs, println!() lo utiliza internamente para mostrar mensajes por consola, aquí lo utilizaremos para ingresar datos por la misma. stdin() permite traer información y read_line() indica que esa información será recibida por consola. &mut nombre es la variable donde guardaremos el dato ingresado por el usuario (Utiliza mut en las variables para indicar que la misma cambiará de valor). Finalmente, unwrap(), nos ayuda con el manejo de errores.
nombre = nombre.trim().to_string();
Aquí solo formateamos el texto para eliminar saltos de línea y espacios en blanco.
println!("Bienvenido o bienvenida: {}", nombre);
Luego de que el usuario ingresara su nombre, lo mostramos por consola.
Recuerda que puedes ejecutar el código con el comando cargo run
.
Cambiando el tipo de dato en Rust
Por defecto, todos los datos que ingresa el usuario por consola son del tipo string. Puede ocurrir que necesites números enteros y para esto tienes que convertir el tipo de datos de la siguiente manera:
fn main() {
println!("Ingrese su edad:");
let mut edad: String = String::new();
std::io::stdin().read_line(&mut edad).unwrap();
let edad_int: u8 = edad.trim().parse().unwrap();
println!("La edad es: {}", edad_int);
}
Lo importante aquí es la línea let edad_int: u8 = edad.trim().parse().unwrap();
donde creamos una nueva variable donde guardaremos un número del tipo u8. De esta forma podrás manipular ese dato y realizar cualquier operación matemática.
Hasta aquí, ya sabes declarar varios tipos de variables, recibir y mostrar datos por consola. Juega con estas herramientas creando un formulario para que el usuario ingrese valores por consola y pueda manipularlos antes de mostrarlos por la terminal.
Contribución creada por: Kevin Fiorentino.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?