Erreur "cannot borrow as mutable because it is also borrowed as immutable" en Rust : comment corriger ?
Bonjour ! Je viens de commencer à apprendre Rust et je suis confronté à un problème que je ne comprends pas.\n\nJ'ai un programme simple qui prend une chaîne et essaie d'abord d'obtenir sa longueur, puis de modifier le premier caractère :\n\n```rust\nfn main() {\n let mut text = String::from("hello");\n let first = &text[0..1]; // référence immuable\n text.push_str(" world"); // tentative d'emprunt mutable\n println!("First char: {}", first);\n}\n```\n\nLe compilateur génère une erreur :\n\n```\nerror[E0502]: cannot borrow `text` as mutable because it is also borrowed as immutable\n```\n\nJe comprends qu'en Rust il y a des règles d'emprunt : soit une référence mutable, soit autant de références immuables que l'on veut. Mais pourquoi mon cas viole-t-il cette règle ? En effet, je prends d'abord une référence immuable sur une partie de la chaîne, puis