Un pequeño programa de ejemplo en Rust:
fn main() { // Program entry point
let mut x: i32 = 6; // Mutable variable binding
print!("{x}"); // Macro for printing, like printf
while x != 1 { // No parenthesis around expression
if x % 2 == 0 { // Math like in other languages
x = x / 2;
} else {
x = 3 * x + 1;
}
print!(" -> {x}");
}
println!();
}
Si corremos este programa:
$ cargo run
Compiling hello_cargo v0.1.0 (/home/emanuel/Projects/rust/hello_cargo)
Finished dev [unoptimized + debuginfo] target(s) in 0.48s
Running `target/debug/hello_cargo`
6 -> 3 -> 10 -> 5 -> 16 -> 8 -> 4 -> 2 -> 1
El código implementa la conjetura de Collatz: se cree que el ciclo siempre terminará, pero esto aún no está probado.
Que podemos ver de este código:
- Todas las variables están tipadas estáticamente. Podemos eliminar i32 para activar la inferencia de tipo : let mut x = 6;
- mut se utiliza para indicar que x es mutable.
- print! se utiliza para imprimir.