本文概述
- 与Option < T> 匹配
- 比赛内容详尽
让我们通过一个简单的例子了解match运算符:
enum Computerlanguage{C, Cplus, Java, Csharp, }fn language(language:Computerlanguage){ match language {Computerlanguage::C=>
println!("C language"), Computerlanguage::Cplus=>
println!("C++ language"), Computerlanguage::Java=>
println!("Java language"), Computerlanguage::Csharp=>
println!("C# language"), }}fn main(){ language(Computerlanguage::C);
language(Computerlanguage::Cplus);
language(Computerlanguage::Java);
language(Computerlanguage::Csharp);
}
输出
C languageC++ languageJava languageC# language
在上面的示例中, Computerlanguage是一种自定义数据类型, 由四个变体组成, 分别是C, Cplus, Java和Csharp。 match运算符将语言的值与match运算符块中给定的表达式进行匹配。
与Option < T> 匹配 在某些情况下要获取T的内部值时, 将使用Option < T> 。
Option < T> 由两个变体组成:
- 无:表示失败或价值不足。
- Some(value):这是一个用T包裹值的元组结构。
fn main(){ even_number(2);
even_number(3);
}fn even_number(n:i32){ let num=n;
match checked_even(n){None=>
println!("None"), Some(n)=>
{ if n==0 { println!("{} is a even number", num);
} else { println!("{} is a odd number", num);
}}, }}fn checked_even(number:i32)->
Option<
i32>
{Some(number%2)}
输出
2 is a even number3 is a odd number
比赛内容详尽 在Rust中, 匹配是详尽无遗的, 也就是说, 我们应该尽一切可能的情况使代码有效。假设我们忘记编写None案例, 那么Rust编译器将显示” 模式’ None’ 未覆盖” 的错误。
让我们通过一个例子来理解这种情况:
fn main(){ Some(5);
}fn Value(n:Option<
i32>
){match n{Some(n)=>
println!("{}is a Number", n), }}
输出
文章图片
推荐阅读
- Rust错误处理详细图解
- Rust枚举控制流if let运算符
- Rust结构更新语法
- Android | 教你如何使用HwCameraKit接入相机人像模式
- Maven Java Example Application
- Android | 教你如何快速集成机器学习能力
- uni-app显示ORA-00917: 缺失逗号
- 敏杰开发帮你轻松实现图形化文献管理——知识路书app入门指南
- appium移动自动化测试框架搭建实战,附源码