版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/BaiHuaXiu123/article/details/88608021
例子
let sp = Some(111);
if let Some(b) = sp{
println!("{}", b);
}else{
println!("wrong");
}
原理
Some(T)存在于Option枚举类型中,它的定义:
enum Option<T> {
Some(T),
None,
}
这里使用了范型。也就是说Option枚举的Some成员可以是任意的数据类型。
解耦Some(T)中T的值方式:
第一种:
let sp = Some(111);
if let Some(b) = sp{//if let 是rust语法糖形式
println!("{}", b);
}else{
println!("其它");
}
第二种:
let sp = Some(111);
let v = sp.unwrap();//111
第三种:
let mut x = Some(2);
match x.as_mut() {
Some(v) => *v = 42,
None => {},
}
assert_eq!(x, Some(42));