Avatar ·

Error "cannot borrow as mutable because it is also borrowed as immutable" en Rust: ¿cómo solucionarlo?

¡Hola! Acabo de empezar a aprender Rust y me encontré con un problema que no puedo entender. Tengo un programa simple que toma una cadena e intenta primero obtener su longitud y luego cambiar el primer carácter: ```rust fn main() { let mut text = String::from("hello"); let first = &text[0..1]; // referencia inmutable text.push_str(" world"); // intento de préstamo mutable println!("First char: {}", first); } ``` El compilador da el error: ``` error[E0502]: cannot borrow `text` as mutable because it is also borrowed as immutable ``` Entiendo que en Rust hay reglas de préstamo: o una referencia mutable, o tantas inmutables como quieras. Pero, ¿por qué mi caso viola esta regla? Primero tomo una referencia inmutable a una parte de la cadena, y luego intento modificarla. Cuando uso `first` después del cambio, ¿esto podría causar problemas? Por favor, explícame cómo funciona esto en la práctica y cómo resolver la tarea correctamente. Concretamente: mi