Difference between revisions of "Variables"
| (6 intermediate revisions by the same user not shown) | |||
| Line 32: | Line 32: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Esta versión no causará errores de compilación. | Esta versión no causará errores de compilación. | ||
=Constantes y variables= | |||
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. | |||
=Shadowing= | |||
¿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 <code>let</code>: | |||
<syntaxhighlight lang="rust" line='line' highlight="1"> | |||
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); | |||
} | |||
</syntaxhighlight> | |||
El resultado del programa será <code>El tiempo total es: 14400</code>. | |||
Cada vez que usamos <code>mut</code> 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= | |||
[[tipos_de_datos|Ir a tipos de variables]] | |||
Latest revision as of 22:42, 27 January 2021
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:
- Las variables pueden ser mutables o inmutables, mientras que las constantes solamente pueden ser inmutables.
- Si definimos una constante con
const, 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.
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.