gpt4 book ai didi

rust - 整个Box都可以 move 时,Box可以 move 其内容吗?

转载 作者:行者123 更新时间:2023-12-03 11:28:31 24 4
gpt4 key购买 nike

如果我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?


这包括:
  • Is there any way to allow moving a container that has a borrowed element but not dropping it?
  • Why can't I store a value and a reference to that value in the same struct?
  • 关于rust - 整个Box都可以 move 时,Box可以 move 其内容吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64854198/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com