我在使用这个简单的构造时遇到了麻烦:
fn main() {
let mut stack: Vec<Option<&str>> = Vec::new();
stack.push(None);
let item: Option<&str> = stack.pop();
}
我收到编译错误:
src/main.rs:4:30: 4:41 error: mismatched types:
expected `core::option::Option<&str>`,
found `core::option::Option<core::option::Option<&str>>`
(expected &-ptr,
found enum `core::option::Option`) [E0308]
src/main.rs:4 let item: Option<&str> = stack.pop();
^~~~~~~~~~~
src/main.rs:4:30: 4:41 help: run `rustc --explain E0308` to see a detailed explanation
如何在Option
中存储Vec
种类型,并访问仍包含在Option
中的个别元素?
答案 0 :(得分:1)
刚刚意识到发生了什么。 Vec
会返回Option<T>
。