gpt4 book ai didi

rust - 无法在 self.attribute 上移出 Box::into_raw 的借用内容

转载 作者:行者123 更新时间:2023-11-29 08:14:12 25 4
gpt4 key购买 nike

pub struct Themepark {
attraction: Box<Attraction>
}

注意:Attraction是一种特质!

impl Themepark {

pub fn open(&mut self) -> Result<(), ()> {

let attraction = Box::into_raw(self.attraction);

...
}

}

这给了我

> cannot move out of borrowed content

self.attraction里面Box::into_raw

现在我明白了那个特定的错误消息是什么意思,但我不明白如何解决它 Box::into_raw期望一个 Box<T>作为参数,而不是引用或任何东西。

https://doc.rust-lang.org/std/boxed/struct.Box.html#method.into_raw

最佳答案

在可变地借用 self 时,您将无法在 self.attraction 上使用该功能;根据其文档的第一行:

Consumes the Box

您要么需要 .clone() 它,要么使用使用 self 的函数(例如 fn open(self))。

我建议重新阅读 The Rust Book's chapter on Ownership .

关于rust - 无法在 self.attribute 上移出 Box::into_raw 的借用内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48074447/

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