Как изменить поле структуры из метода в 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`، فسأتمكن من تعديل حقوله داخل الدوال. لكن على ما يبدو، هذا ليس صحيحًا. كيف يمكنني تعديل حقل الهيكل بشكل صحيح من داخل دالة؟ هل أحتاج إلى إعلان الدالة بطريقة خاصة؟ سأكون ممتنًا لشرح مع أمثلة.
<<>>