Rust 创建一个选项值和模式匹配

示例

// 选项类型可以包含一些值或无。
fn find(value: i32, slice: &[i32]) -> Option<usize> {
    for (index, &element) in slice.iter().enumerate() {
        if element == value {
            // 返回一个值(包装在Some中)。
            return Some(index);
        }
    }
    // 不返回任何值。
    None
}

fn main() {
    let array = [1, 2, 3, 4, 5];
    // 模式与Option值匹配。
    if let Some(index) = find(2, &array) {
        // 在这里,有一个价值。
        println!("The element 2 is at index {}.", index);
    }

    // 检查结果是否为None(无值)。
    if let None = find(12, &array) {
        // 在这里,没有价值。
        println!("元素12不在数组中。");
    }

    // 您还可以使用`is_some`和`is_none`帮助器
    if find(12, &array).is_none() {
        println!("元素12不在数组中。");
    }
}