Creando nuestra calculadora
Clase 13 de 20 • Curso de Rust básico
Resumen
Es momento de desarrollar tu primera gran aplicación en Rust. Eres libre de idear y programar una aplicación de consola como una calculadora o un calendario. Para esto, ten presenta algunos consejos:
Utilización de dependencias en Rust
Explora la gran cantidad de dependencias que tiene Rust en su repositorio para encontrar las que necesites para tu app.
Algunas dependencias interesantes:
Recuerda agregar la dependencia en el archivo Cargo.toml
para su posterior descarga e importarla con use
.
use regex::Regex;
fn main() {
// ...
}
Cada dependencia tiene su propia documentación para que sepas cómo utilizarla.
Conversiones de datos en Rust
Veamos algunas formas de convertir datos en Rust que te servirá de ahora en adelante.
String a entero
Hay varias formas de declarar una variable del tipo String
:
let nombre = "123".to_string();
let nombre: String = "123".to_string();
let nombre = String::from("123");
let mut nombre: String = String::new();
nombre = "123".to_string();
Conviértelo a número entero con parse()
, pero teniendo en cuenta de borrar los espacios en blanco con trim()
para evitar inconvenientes y capturar los errores con unwrap()
.
let number: i32 = nombre.trim().parse().unwrap();
println!("{}", number+1);
String vs. &str
Recuerda que el tipo de dato String
permite manipular una cadena de texto, mientras que el tipo de dato &str
contiene la referencia a un String
, pero solo contiene su valor.
Cuando le asignas a una variable un valor con dobles comillas ""
, las mismas crean un &str
, por esto utilizamos to_string()
para que retorne el tipo de dato en formato String
y poder manipularlo. Y por este mismo motivo necesitas un String
para hacer un .trim().parse()
y convertir la variable al tipo entero.
Para convertir un String
a &str
, solo agrega el &
(Ampersand) delante del nombre de la variable o con as_str()
.
let nombre: String = "123".to_string();
let nombre_plano: &str = &nombre;
let nombre: String = "123".to_string();
let nombre_plano: &str = nombre.as_str();
Muchas formas de hacer lo mismo ¿No te parece?
TIP: Por convencion, en Rust, todas las variables y nombres de funciones que declares utilizan snackcase, o sea, un
_
para separar las palabras. EJ:my_variable
omy_function
.
Rust posee una curva de aprendizaje algo más compleja cuando se trata de tipos de datos y conversiones. Como siempre, la práctica hará que puedas comprender cuándo utilizar cada tipo y ser más veloz resolviendo problemas.
Contribución creada por: Kevin Fiorentino.