Solicitar datos a un usuario en rust.
Bueno esta entrada esta dedicada a leer datos desde el teclado con rust, para así poder procesarlos y mostrar el resultado del proceso. Para ello se hará uso de unas bibliotecas con las que cuenta este lenguaje de programación.
Biblioteca
La biblioteca que permite solicitar al usuario que introduzca un valor, y pueda ser procesadao en rust se llama read_line, permite leer una línea como un String. Para acceder a read_line primero se necesita tener un objeto stdin. La manera más fácil de hacerlo es usar el módulo std::io.
Procedimiento
El procedimiento es el siguiente, en primer lugar se debe de crear una variable de tipo String vacía y mutable donde se va a alojar el resultado, posteriormente se leerá y se mostrará el resultado. Vea el siguiente ejemplo:
El procedimiento es el siguiente, en primer lugar creamos una variable de tipo String vacía y mutable donde se va a alojar el resultado, posteriormente leemos y tratamos el resultado.
use std::io;
fn main() {
let mut entrada = String::new();
let stdin = io::stdin();
println!("Dime tu nombre: ");
stdin().read_line(&mut entrada);
println!("Tu nombre es {}",entrada);
}
solicitando números enteros.
use std::io;
use std::str::FromStr;
fn main() {
println!("Dime tu edad: ");
let mut input = String::new();
io::stdin().read_line(&mut input).ok().expect("Error al leer de teclado");
let edad: u32 = u32::from_str(&input.trim()).unwrap();
let frase = if edad >= 18 {
"Mayor de edad"
}else{
"Menor de edad"
};
println!("{}",frase);
}
Como se puede apreciar, hay que importar std::str::FromStr para tener disponible las operaciones from_str en los tipos elementales. También se observa que se ha hecho un unwrap, porque from_str devuelve un Result.