向量 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]);
   |  

如果您知道当您调用 popqueue 永远不会为空,您可以 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]);
}