Pequeño ejemplo
A continuación, se muestra un pequeño programa de ejemplo de Rust:
fn main() { // Punto de entrada del programa let mut x: i32 = 6; // Variable mutable vinculante print!("{x}"); // Macro para printing, como printf while x != 1 { // Sin paréntesis alrededor de las expresiones if x % 2 == 0 { // Operaciones matemáticas como en otros lenguajes x = x / 2; } else { x = 3 * x + 1; } print!(" -> {x}"); } println!(); }
El código implementa la conjetura de Collatz: se cree que el bucle terminará siempre, pero aún no se ha demostrado. Edita el código y prueba con diferentes entradas.
Puntos clave:
-
Explica que todas las variables están tipadas estáticamente. Prueba a quitar
i32
para activar la inferencia de tipos. Prueba coni8
y provoca un desbordamiento de enteros en runtime. -
Cambia
let mut x
porlet x
y discute el error del compilador. -
Muestra cómo
print!
da un error de compilación si los argumentos no coinciden con la cadena de formato. -
Muestra cómo se debe usar
{}
como marcador de posición para poder imprimir una expresión más compleja que una sola variable. -
Muestra a los alumnos la biblioteca estándar y cómo buscar
std::fmt
, que tiene las reglas del mini-lenguaje de formato. Es importante que los alumnos se familiaricen con la búsqueda en la biblioteca estándar.- En un shell,
rustup doc std::fmt
abrirá un navegador en la documentación local de std::fmt.
- En un shell,