向量 pop() returns 选项
Vector pop() returns Option
我是 Rust 的初学者。我看到 pop()
向量 returns <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]);
|
如果您知道当您调用 pop
时 queue
永远不会为空,您可以 unwrap 选项:
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]);
}
我是 Rust 的初学者。我看到 pop()
向量 returns <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]);
|
如果您知道当您调用 pop
时 queue
永远不会为空,您可以 unwrap 选项:
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]);
}