如果我有一个结构体,它是这样的:
struct Thing {
opt: Option<Box<u32>>
}
fn main() {
let thing = Thing{opt:Some(Box::new(5))};
let pointer = &thing;
match pointer.opt {
None => println!("There is nothing"),
Some(thing) => println!("There is a thing {}", thing)
}
}
我得到了一个错误,沿着如下:“无法将”pointer.opt“作为共享引用后面的枚举变量”Some”移出“能否有人解释一下为什么会发生此错误以及可能的解决方法?
我正在处理的事情需要处理对结构体的引用,该结构体中包含类似的选项。
1条答案
按热度按时间0ve6wy6x1#
std::option::Option::as_ref()
正好适用于这种情况: