Variables y declaraciones en Rust
En Rust a la hora de programar usaremos infinidad de veces algo llamado variables.
Una variable es un contenedor que almacena un valor o información en un programa de computadora. Estos valores pueden ser números, texto, lógicos como verdadero o falso, u otros tipos de información.
Veamos el siguiente ejemplo.
let mi_numero = 2;
En Rust para crear nuevas variables usamos la palabra clave let
let
Seguido usaremos el =
Cuando usemos la variable mi_numero
obtendremos el valor 2.
Eso se reflejaría en el código de la siguiente manera
let mut mi_numero = 2; // ... más código mi_numero = 7;
Ahora se cambio, mi_numero
Es decir, a menos que no sea declarada para que sea modificada por futuros programadores esa variable no puede cambiar de valor.
¿Por que? Porque perfectamente se podría tener algo como:
let mi_numero = "2";
Eso causaría confusión posiblemente en algunas personas, ¿Debo entender que mi_numero
Estos pueden ser casos muy pequeños pero entre más se complejiza el código y hay nuevos tipos de datos, se requiere más y más definir como debemos interpretar una variable.
Eso significa que para casos muy simples como:
let mi_numero = 2;
Pero en Rust hay varios tipos de datos numéricos, por defecto los enteros son de tipo i32
Para definir un tipo usamos los :
seguido del tipo de dato que seria.
let mi_numero:i32 = 2;
No es necesario hacer esto para este caso el i32
no tendría mucho sentido tiparlo pero podríamos desear que sea de tipo u8
en lugar de i32
Lo que podemos decir es que de momento para hacerlo de tipo u8
podríamos usar:
let mi_numero:u8 = 2;
De esta forma si bien el valor seria el mismo el tipo de dato de mi_numero
En Rust la palabra clave const
const MAYORIA_DE_EDAD: u8 = 18; fn main() { println!("En este país la mayoría de edad es {}", MAYORIA_DE_EDAD); }
No pueden haber variables sueltas.
En el caso de las constantes se puede declarar fuera de una función.
Otra característica que quizás notaremos es que las constantes se escriben en mayúsculas.
Y nos puede llamar la atención que la constante puede ser usada en cualquier lado del código. Sin hacer nada raro, tiene lo que se considera un scope (ámbito) global en nuestro código.
Quizás el uso más avanzado del que podremos llegar a ver sera el uso de const
para hacer evaluaciones en tiempo de compilación y quizás sea rutinario ver const
para valores que nunca, jamás cambiaran. Ni si quiera con un concepto más avanzado como la mutabilidad interna.
Por ultimo quizás debamos de ver el uso de la palabra static
static
Lifetimes de momento retengan en mente el siguiente ejemplo.
// Declara una variable estática global static GLOBAL_VARIABLE: u8 = 42; fn main() { // Accede a la variable global println!("El valor de la variable global es: {}", GLOBAL_VARIABLE); }
Si bien podríamos creer que es el mismo caso que una constante, en Rust el uso de static
const
estas pueden ser modificadas, inicialmente tendrán un valor inmutable, pero nosotros podríamos usar mut
A lo largo de los años, la experiencia de muchos desarrolladores ha demostrado que esto es una mala practica.
Rust sin embargo permitirá la modificación de la variable global pero bajo uso de unsafe
unsafe
Esta vez si es un uso recomendado por desarrolladores expertos que es usando Mutabilidad Interna.
Otro concepto que veremos a lo largo del Roadmap, en el blog y demás.
Desde ya muchas gracias por leer.