rust 所有権まわり
コピーセマンティクス
所有権は移動せずコピーが作られる
ムーブセマンティクス
所有権が移動する,それまで使っていたvariableが使用不可になる
関数にムーブセマンティクスすると所有権が消費され,それまでのvariableにアクセスできなくなる
リファレンスを渡すようにすることで,所有権が消費されなくなる(これを借用という)
imuutableな借用は幾つでも作れる.
mutableな借用は1つだけ
ただしリファレンスのスコープが重ならなければ良い(リファレンスのスコープ=リファレンスの作成とリファレンスの使用の間)
リファレンスの作成とリファレンスの使用の間でリファレンが指し示す先の変数の値を書き換えることはできない
引数・返却値の両方がリファレンスかつ引数と返却値の両方が一対一で結びつかないとき,ライフタイムを指定する必要がある