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