13、初识Rust – if let 简洁控制流
目录 编程
Rust除了match控制流外,还有一个简洁编写的if let 控制流。
fn main() { let a = Some(8); if let Some(value) = a { println!("{}",value) } } ---------------------------------------------------- Compiling master v0.1.0 (/Users/xxxxxx) Finished dev [unoptimized + debuginfo] target(s) in 1.06s Running `target/debug/master` 8
if let控制流与if else控制流概念不同,你可以把它想象为一个精简版的match控制流。它使用等号分隔一个模式与一个表达式,一个if let相当于一个分支,虽然if let可以节约不少代码量,但它缺少了match的穷尽性检查。当你面对需要选择if let和match的场景时,需要进行较好的权衡。
同样你可以将if let认为是match的语法糖,同时你也可以在if let中添加else,if let中的else相当于match表达式中的_ 分支块的内容。
fn main() { let a = Some(8); let b: Option<i32> = None; if let Some(value) = b { println!("{}",value); } else { println!("无匹配"); } } --------------------------------------------------- Finished dev [unoptimized + debuginfo] target(s) in 0.54s Running `target/debug/master` 无匹配