مراجع حصرية

المراجع الحصرية (Exclusive references)، والمعروفة أيضًا بالمراجع القابلة للتغيير (mutable references)، تسمح بتغيير القيمة التي تشير إليها. نوعها هو &mut T.

fn main() {
    let mut point = (1, 2);
    let x_coord = &mut point.0;
    *x_coord = 20;
    println!("point: {point:?}");
}
This slide should take about 10 minutes.

نقاط رئيسية:

  • تعني "حصرية" (Exclusive) أن هذا المرجع فقط يمكن استخدامه للوصول إلى القيمة. لا يمكن أن توجد مراجع أخرى (مشتركة أو حصرية) في نفس الوقت، ولا يمكن الوصول إلى القيمة المشار إليها بينما المرجع الحصري موجود. جرب إنشاء &point.0 أو تغيير point.0 بينما x_coord موجود.

  • تأكد من ملاحظة الفرق بين let mut x_coord: &i32 و let x_coord: &mut i32. الأول يمثل مرجعًا مشتركًا (shared reference) يمكن ربطه بقيم مختلفة، بينما الثاني يمثل مرجعًا حصريًا (exclusive reference) لقيمة قابلة للتغيير (mutable value).