如何解决向量pop返回Option
我是初学者。我看到向量的pop()
方法返回了<Option>
类型。如何获得pop()
值作为变量的正确方法?
let mut queue: Vec<[usize; 2]> = Vec::new();
queue.push([1,2]);
queue.push([3,4]);
let coords = queue.pop();
println!("{},{}",coords[0],coords[1]);
error[E0608]: cannot index into a value of type `std::option::Option<[usize; 2]>`
--> src/main.rs:99:24
|
99 | println!("{},coords[1]);
|
解决方法
如果您知道queue
永远不会为空,那么您可以unwrap进行选择:
pop
否则,您可以对其进行匹配,并在let coords = queue.pop().unwrap();
情况下进行所需的任何处理:
None
另一种可能性是有用的,如果您只想在选项为let coords = match queue.pop() {
Some(top) => top,None => {
// … handling …
}
};
时做某事,则使用if let
:
Some
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。