Question sur le déréférencement
Bonjour,
J'essaye d'apprendre le langage Rust. Je suis en train de faire les exercices rustlings (https://github.com/rust-lang/rustlings).
J'en suis à l'exercice vecs2.rs (exercice sur les vecteurs)
Dans la boucle, apparemment il faut déréférencer la variable "element" pour pouvoir l'utiliser. Je ne comprend pas pourquoi vu que des fois on a pas besoin de faire ça (exemple dans mon deuxième bout de code ci dessous).
Question subsidiaire : Laquelle de ces deux boucles est la plus correcte ? celle avec l'appel à iter_mut ou l'autre ?
Code:
1 2 3 4 5 6 7 8 9 10 11
| fn vec_loop(mut v: Vec<i32>) -> Vec<i32> {
for element in v.iter_mut() {
*element *= 2;
}
/*for element in &mut v {
*element *= 2;
}*/
v
} |
Code:
1 2 3 4 5 6 7 8
| fn main() {
let truc = String::from ("test");
toto(&truc);
}
fn toto(param: &String) {
println!("{}", param); // <-- Ca fonctionne avec ou sans le caractère * comment ca ce fait ?
} |