flakolefluk.dev

Aprendiendo Rust en público - Variables (1)

Esta no es la primera vez que comienzo este proceso, pero por diversos motivos, he quedado a medias en mi tarea. Por eso, he decidido hacer esta experiencia pública (para meterme algo de presión y para que le sirva a otros). No comenzaré por el libro de rust porque quería hacer ejercicios prácticos, ver el lenguaje en acción. Encontré en algúna parte sugerido rustlings, una serie de ejercicos para aprender. Tendremos el libro cerca siempre en todo caso en caso de necesitar consultar algo y resolver dudas.

Antes de comenzar #

curl -L https://git.io/rustlings | bash

Esto creará la carpeta rustlings con el contenido necesario.

Ejercicios #

Abre la carpeta y en el terminal ejecuta el comando rustlings watch para comenzar con los ejercicios.

En primera instancia se intentará compilar el primer ejercicio con un error.

Ejercicio 1 #

Exploraremos la carpeta con nuestro editor de código de preferencia. (VSCode para mí code .)

El código (con errores)

fn main() {
x = 5;
println!("x has the value {}", x);
}

Previamente el error obtenido fue:

⚠️  Compiling of exercises/variables/variables1.rs failed! Please try again. Here's the output:
error[E0425]: cannot find value `x` in this scope
--> exercises/variables/variables1.rs:12:5
|
12 | x = 5;
| ^ not found in this scope

error[E0425]: cannot find value `x` in this scope
--> exercises/variables/variables1.rs:13:36
|
13 | println!("x has the value {}", x);
| ^ not found in this scope

error: aborting due to 2 previous errors

For more information about this error, try `rustc --explain E0425`.

Type '
hint' to get help or 'clear' to clear the screen

Del capítulo 3.1 del libro de rust:

¿Cual sería la diferencia entre const y let si ambas no pueden ser reasignados?
const no puede ser asignado a un valor computado (como el resultado de una función)

Sabiendo esto entonces, modificamos el código, añadiendo let cuando declaramos nuestra variable.
Cualquiera de las opciones serviría en este caso pero, el valor no es mutado en ningun momento (por lo que no es necesario agregar mut) y por convención las constantes(const) se nombran con mayúsculas.

fn main() {
let x = 5;
println!("x has the value {}", x);
}

Ahora nuestro código compila y el ejercicio está completo.

Para seguir con el siguiente ejercicio debemos borrar la línea:

// I AM NOT DONE

del código del ejercicio. Esto debes hacerlo al terminar cada uno de ellos.

Felicitaciones, lo logramos y aprendimos algo nuevo. ;)

Nota: en el ejercicio, println! parece una función, pero es un macro. Un macro es reconocible por el signo ! al final. Puedes adelantarte y leer este capítulo del libro de Rust, pero te recomiendo dejarlo para más adelante. De momento, nos bastará con saber que como resultado imprimirá una línea en la consola.

Para seguir esta serie, puedes buscar por el tag #aprendiendo_rust