Rust/所有権
これによってある参照が存在する場合に,その他に可変参照が存在しないことが保証される. メモリ解放をちょうど1回だけするという要請を達成したい code:.rs
// こういうのがエラーで検知される
fn dangle() -> &String { // dangleはStringへの参照を返す
let s = String::from("hello"); // sは新しいString
&s // String sへの参照を返す
} // ここで、sはスコープを抜け、ドロップされる。そのメモリは消される。
// 危険だ
code:.rs
let mut s = String::from("hello");
{
let r1 = &mut s;
} // r1はここでスコープを抜けるので、問題なく新しい参照を作ることができる
let r2 = &mut s;