هل يمكن استخدام المتغيرات العامة في Rust؟
مرحباً بالجميع! لقد بدأت للتو في تعلم Rust، وانتقلت من C++، وواجهت مشكلة. في C++ اعتدت استخدام المتغيرات العامة لتخزين إعدادات التطبيق أو العدادات التي تحتاج إلى الوصول إليها من دوال مختلفة. على سبيل المثال، لدي عداد بسيط لاستدعاءات الدالة:
```rust
static COUNTER: i32 = 0;
fn increment() {
COUNTER += 1; // خطأ!
}
```
يُصدر المترجم خطأ: "cannot mutate static variable". حاولت تغليفه بـ `mut`:
```rust
static mut COUNTER: i32 = 0;
fn increment() {
COUNTER += 1; // unsafe! غير مريح جداً.
}
```
الآن يطلب المترجم تغليف الوصول بـ `unsafe { ... }`. أفهم أن هذا غير آمن، ولكن كيف إذن يمكن تنظيم الحالة العامة بشكل صحيح؟ أحتاج أن يكون المتغير مرئياً في جميع أنحاء البرنامج، مع بقاء الكود آمناً. سمعت عن `lazy_static` و `OnceCell`، لكنني لا أفهم أي نهج يجب اختياره. أرجو إرشادي، كيف يتم التعامل مع المتغيرات العامة في Rust؟
لا توجد إجابات بعد.
تسجيل الدخول لترك إجابة
المدونات
العمل مع JSON في C++: تحليل البيانات وتسلسلها