¿Cómo cambiar un campo de una estructura desde un método en Rust?
¡Hola, colegas! Acabo de empezar a aprender Rust y me encontré con un problema que parece simple pero no puedo resolverlo. Tengo una estructura `Counter` que almacena un número. Quiero escribir un método `increment` que aumente ese número en 1. Pero el compilador da un error y no entiendo por qué.
Aquí está mi código:
```rust
struct Counter {
value: i32,
}
impl Counter {
fn increment(&self) {
self.value += 1; // ¡Error!
}
}
fn main() {
let mut counter = Counter { value: 0 };
counter.increment();
println!("{}", counter.value);
}
```
El compilador dice: `cannot borrow `self.value` as mutable, as `self` is a `&` reference`. Pensé que si declaraba `counter` como `mut`, podría cambiar sus campos dentro de los métodos. Pero, aparentemente, no es así. ¿Cómo cambio correctamente un campo de una estructura desde un método? ¿Necesito declarar el método de alguna manera especial? Agradecería una explicación con ejemplos.
<<>>
Problema: referencia inmutable en el método
No answers yet.
Inicia sesión para dejar una respuesta