示例
//选项类型可以包含一些值或无。
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不在数组中。");
}
}