Ексклюзивні посилання
Ексклюзивні посилання, також відомі як мутабельні посилання, дозволяють змінювати значення, на яке вони посилаються. Вони мають тип &mut T.
fn main() {
let mut point = (1, 2);
let x_coord = &mut point.0;
*x_coord = 20;
println!("point: {point:?}");
}
Ключові моменти:
-
“Ексклюзивне” означає, що тільки це посилання може бути використане для доступу до значення. Жодні інші посилання (спільні або ексклюзивні) не можуть існувати одночасно, і до значення, на яке посилаються, не можна отримати доступ, поки існує ексклюзивне посилання. Спробуйте створити
&point.0або змінитиpoint.0, поки існуєx_coord. -
Обов’язково зверніть увагу на різницю між
let mut x_coord: &i32іlet x_coord: &mut i32. Перший представляє спільне посилання, яке можна прив’язати до різних значень, тоді як другий представляє ексклюзивне посилання на значення, що змінюється.