Avatar ·

如何在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`就能在方法里修改它的字段,但显然不是这样。如何正确地从方法修改结构体字段?需要特殊声明方法吗?希望能有带示例的解释。