- 所有者
- Rustの各値は所有者と呼ばれる変数と対応している
- どんなときでも所有者は1つ
- 所有者がスコープ
{}
外になったら,値は破棄される
- move
- 代入したり,関数に値を渡したりすると所有権が移る.moveされるという.
- 関数から値を返すときも,関数から戻り先へ所有権がmoveされる
- 参照/借用
- 関数に値をそのまま渡すとmoveされちゃうので,されたくなかったら参照を渡してやればいい
- 関数の引数に参照を取ることを,借用という
&
が参照*
が参照外し- 任意のタイミングで,不変な参照はいくつでも作れる.可変な参照
&mut
は一つしか作れない.- データ競合を防ぐ仕組み