Drop
型が実装されている変数がスコープ外になると、関数への呼び出しfn drop(&mut self)
が挿入され、スコープ外になる変数への新しく作成された変更可能な参照が渡されることを理解しています。
しかし、変数が不変にバインドされていて、それを可変的に借用することが違法である場合、どのようにそれが可能でしょうか? これが私が話していることの例です:
fn main() {
let x = vec![1, 2, 3];
let y = &mut x;
}
これにより、次のエラーが生成されます:不変のローカル変数を期待どおりに可変として借りることはできませx
ん。
変更可能な参照が想定されているx
ため、 がドロップされる場合は、同様のことが発生する必要があります。drop