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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 ?
}