P.CTF.02 优先使用模式匹配而非判断后再取值

【描述】

Rust 中 模式匹配 是惯用法,而不是通过 if 判断值是否相等。

【反例】


#![allow(unused)]
fn main() {
let opt: Option<_> = ...;
// 不符合
if opt.is_some() {
  let value = opt.unwrap();
  ...
}

// 不符合
let list: &[f32] = ...;

if !list.is_empty() {
  let first = list[0];
  ...
}

}

【正例】


#![allow(unused)]
fn main() {
// 符合
if let Some(value) = opt {
  ...
}
// 符合
if let [first, ..] = list {
  ...
}
}