如果我Box::new
一个值,请指向它的指针(借位检查器将不允许引用,因为我要 move 该框),然后 move Box
,可以 move 值(例如重新分配)发生?
我以为Box
仅存储值的地址,因此 move Box
只会 move 地址。因此,是否有理由为什么借阅检查器在内容一成不变地借入时禁止 move 它?
Playground
最佳答案
不, move Box
不会 move 堆中的值。Box
保证:
a
Box<T>
is guaranteed to be represented as a single pointer
并且Rust保证 move 始终是按位复制(如果它们完全复制)。
Is there therefore a reason why borrow checker prohibits moving it when its contents are immutably borrowed?
这包括:
关于rust - 整个Box都可以 move 时,Box可以 move 其内容吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64854198/