Variables

From El Mago del Rust
Revision as of 22:42, 27 January 2021 by Lochi (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

let[edit]

Para definir una variable usamos let. Por ejemplo, si quisiéramos definir una variable llamada alfa y definirle un valor de 3, haríamos:

let alfa= 3;

Mutabilidad[edit]

Las variables en Rust son inmutables: no cambian. No obstante, tienes la opción de hacerlas mutables si lo deseas.

Inmutabilidad implica que una vez que un valor se liga a un identificador, no puedes cambiar ese valor. Por ejemplo: si defines una variable y lo tratas de cambiar, obtendrás un mensaje de error:

fn main(){
    let alfa = 3;
    alfa = 4;
}
error[E0384]: cannot assign twice to immutable variable `alfa`

Esto trae la ventaja de que no vas a poder cambiar accidentalmente el valor de una variable, a menos de que explícitamente hayas definido esa variable como mutable.

Si quisieras que la variable cambie de valor, es cuestión de usar mut:

fn main(){
    let mut alfa = 3;
    alfa = 4;
}

Esta versión no causará errores de compilación.

Constantes y variables[edit]

La diferencia con las constantes es que:

  1. Las variables pueden ser mutables o inmutables, mientras que las constantes solamente pueden ser inmutables.
  2. Si definimos una constante con const, es obligatorio indicar el tipo de variable.
  3. Las constantes solamente pueden ser definidas a una expresión constante, no pueden coger el valor de un resultado de una función u otro valor que solamente puede ser obtenido al ejecutar el programa.

Shadowing[edit]

¿Alguna vez has tenido problemas para encontrar nombres para variables? Esto ocurre muchas veces cuando requerimos variables "temporales" mientras calculamos pasos intermedios, antes de producir el valor final que sí vamos a utilizar. Rust nos ahorra este problema: permitiendo que reutilicemos el mismo identificador y variable, inclusive cambiando su tipo, usando let:

fn main(){
    let tiempo_total=4; //horas
    let tiempo_total=tiempo_total*60; //ahora está en minutos
    let tiempo_total=tiempo_total*60; //ahora está en segundos
    println!("El tiempo total es: {}", tiempo_total);
}

El resultado del programa será El tiempo total es: 14400.

Cada vez que usamos mut estamos creando una nueva variable, pero reutilizando el mismo nombre. Como es una nueva variable, podemos cambiarle el tipo si así lo deseamos.

Tipos de variables[edit]

Ir a tipos de variables