Comment modifier un champ de structure à partir d'une méthode en Rust ?
Bonjour, collègues ! Je viens de commencer à apprendre Rust et j'ai rencontré un problème qui semble simple, mais je n'arrive pas à le résoudre. J'ai une structure `Counter` qui stocke un nombre. Je veux écrire une méthode `increment` qui augmente ce nombre de 1. Mais le compilateur génère une erreur, et je ne comprends pas pourquoi.
Voici mon code :
```rust
struct Counter {
value: i32,
}
impl Counter {
fn increment(&self) {
self.value += 1; // Erreur !
}
}
fn main() {
let mut counter = Counter { value: 0 };
counter.increment();
println!("{}", counter.value);
}
```
Le compilateur dit : `cannot borrow `self.value` as mutable, as `self` is a `&` reference`. Je pensais que si je déclarais `counter` comme `mut`, je pourrais modifier ses champs à l'intérieur des méthodes. Mais apparemment, ce n'est pas le cas. Comment modifier correctement un champ de structure à partir d'une méthode ? Faut-il déclarer la méthode d'une manière particulière ? Je serais reconnaissant pour une explication avec des exemples.
<<>>