如何在Rust中从方法修改结构体字段?
大家好!我刚学Rust,遇到一个看似简单但解决不了的问题。我有一个存储数字的`Counter`结构体,想写一个`increment`方法让它加1,但编译器报错了,我不明白原因。
这是我的代码:
```rust
struct Counter {
value: i32,
}
impl Counter {
fn increment(&self) {
self.value += 1; // 错误!
}
}
fn main() {
let mut counter = Counter { value: 0 };
counter.increment();
println!("{}", counter.value);
}
```
编译器说:`cannot borrow `self.value` as mutable, as `self` is a `&` reference`。我以为把`counter`声明为`mut`就能在方法里修改它的字段,但显然不是这样。如何正确地从方法修改结构体字段?需要特殊声明方法吗?希望能有带示例的解释。