Vector pop() returns 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[0], coords[1]);
|  

如果您知道queue在调用pop时永远不会为空,则可以打开选项:

let coords = queue.pop().unwrap();

否则,在None的情况下,您可以匹配它并进行任何需要的处理:

let coords = match queue.pop() {
Some(top) => top,
None => {
// … handling …
}
};

如果你只想在选项为Some时做某事,那么另一种可能性是使用if let:

if let Some(coords) = queue.pop() {
println!("{}, {}", coords[0], coords[1]);
}

相关内容

  • 没有找到相关文章

最新更新