Ексклюзивні посилання

Ексклюзивні посилання, також відомі як мутабельні посилання, дозволяють змінювати значення, на яке вони посилаються. Вони мають тип &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.

Ключові моменти:

  • "Ексклюзивне" означає, що тільки це посилання може бути використане для доступу до значення. Жодні інші посилання (спільні або ексклюзивні) не можуть існувати одночасно, і до значення, на яке посилаються, не можна отримати доступ, поки існує ексклюзивне посилання. Спробуйте створити &point.0 або змінити point.0, поки існує x_coord.

  • Обов’язково зверніть увагу на різницю між let mut x_coord: &i32 і let x_coord: &mut i32. Перший представляє спільне посилання, яке можна прив'язати до різних значень, тоді як другий представляє ексклюзивне посилання на значення, що змінюється.