Avatar ·

Erro "cannot borrow as mutable because it is also borrowed as immutable" em Rust: como corrigir?

Olá! Comecei a estudar Rust e me deparei com um problema que não consigo entender. Tenho um programa simples que recebe uma string e tenta primeiro obter seu comprimento, e depois modificar o primeiro caractere: ```rust fn main() { let mut text = String::from("hello"); let first = &text[0..1]; // referência imutável text.push_str(" world"); // tentativa de empréstimo mutável println!("First char: {}", first); } ``` O compilador exibe o erro: ``` error[E0502]: cannot borrow `text` as mutable because it is also borrowed as immutable ``` Eu entendo que em Rust existem regras de empréstimo: ou uma referência mutável, ou quantas referências imutáveis forem necessárias. Mas por que meu caso viola essa regra? Afinal, primeiro pego uma referência imutável para parte da string, e depois...