[rust整理笔记]rust基本语法之option解耦-07

版权声明:本文为博主原创文章,未经博主允许不得转载。 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));

参考官方文档

猜你喜欢

转载自blog.csdn.net/BaiHuaXiu123/article/details/88608021