Retour à la leçonMission
Mission : debloquer un cache qui refuse de compiler
Diagnostiquer une violation de la regle du borrow checker et choisir la reorganisation de code qui la resout sans clone inutile.
Contexte
Un collegue a ecrit un petit cache en memoire et obtient l'erreur 'cannot borrow cache as mutable because it is also borrowed as immutable' :
rust
fn main() {
let mut cache: Vec<String> = vec![String::from("a"), String::from("b")];
let premier = &cache[0];
cache.push(String::from("c"));
println!("{}", premier);
}Il ne comprend pas pourquoi push declenche une erreur alors qu'il ne touche pas directement a premier. Aide-le a comprendre la regle exacte qui est violee, et corrige le code.