j'ai écrit ce code qui emprunte une variable mutable plus d'une fois et compile sans erreur, mais selon The Rust Programming Language cela ne devrait pas compilez:Pourquoi plusieurs emprunts mutables sont-ils possibles dans la même portée?
fn main() {
let mut s = String::from("hello");
println!("{}", s);
test_three(&mut s);
println!("{}", s);
test_three(&mut s);
println!("{}", s);
}
fn test_three(st: &mut String) {
st.push('f');
}
Est-ce un bug ou il y a nouvelle fonctionnalité dans Rust?
je l'ai écrit il y a un code similaire quelques mois avec le compilateur rouille plus et je suis arrivé erreur de compilation, quelque chose comme ça « ne peut pas emprunter mutable plus d'une fois ». mais maintenant il fonctionne avec la version 1.20. – mojtab23
@ Mojtab23 en fait ce n'est rien de nouveau et devrait fonctionner correctement depuis Rust 1.0; il compile sans problème avec [godbolt's rustc 1.0] (https://rust.godbolt.org). Le code auquel vous faites référence avait probablement une différence significative (même si elle était subtile à première vue). – ljedrz