- Rust简介
- Rust的特点
- Rust开发环境安装
- Rust第一个程序
- 控制语句
- Rust所有权
- Rust结构体
- Rust枚举
- Rust模块
- Rust集合
- Rust错误处理
- Rust泛型与性状
- Rust智能指针
匹配运算符
匹配运算符允许将值与一系列模式进行比较,并在找到匹配项时执行代码。 模式可以是文字值,变量名称,通配符和许多其他内容。
下面通过一个简单的例子来理解匹配运算符:
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 language C++ language Java language C# language
在上面的示例中,Computerlanguage
是一种自定义数据类型,由四种变体组成:C
,Cplus
,Java
,Csharp
。 匹配运算符将语言的值与匹配运算符块中给出的表达式匹配。
与选项T匹配
当想要在某些情况下获得T
的内部值时,使用选项<T>
。
选项 <T>
包含两个变体:
- None:表示失败或缺少值。
- 一些(值):它是一个用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 number 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控制流程