排他参照

排他参照は可変参照とも呼ばれ、参照先の値を変更できます。型は &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: &i32let x_coord: &mut i32 の違いに注意してください。前者は異なる値にバインドできる共有参照を表すのに対し、後者は可変の値への排他参照を表します。