Difference between revisions of "Variables"

From El Mago del Rust
Jump to navigation Jump to search
Line 32: Line 32:
</syntaxhighlight>
</syntaxhighlight>
Esta versión no causará errores de compilación.
Esta versión no causará errores de compilación.
La diferencia con las constantes es que:
#Las variables pueden ser mutables o inmutables, mientras que las constantes solamente pueden ser inmutables.
#Si definimos una constante con <code>const</code>, es obligatorio indicar el tipo de variable.
#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.

Revision as of 21:21, 25 January 2021

let

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

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.

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.