مراجع انحصاری

مراجع انحصاری، همچنین به عنوان مراجع قابل تغییر شناخته می شوند، اجازه می دهند مقداری را که به آن ارجاع می دهند تغییر دهند. آنها نوع 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.

نکات کلیدی:

  • "انحصاری" به این معنی است که فقط از این مرجع می توان برای دسترسی به مقدار استفاده کرد. هیچ مرجع دیگری (اشتراک‌گذاری شده یا انحصاری) نمی‌تواند همزمان وجود داشته باشد، و تا زمانی که مرجع انحصاری وجود دارد، نمی‌توان به مقدار ارجاع‌شده دسترسی داشت. زمانی که x_coord زنده است، &point.0 بسازید یا point.0 را تغییر دهید.

  • حتماً تفاوت بین «let mut x_coord: &i32» و «let x_coord: &mut i32» را یادداشت کنید. مورد اول یک مرجع مشترک را نشان می دهد که می تواند به مقادیر مختلف متصل شود، در حالی که دومی نشان دهنده یک مرجع انحصاری به یک مقدار قابل تغییر است.