matchesの紹介をします。
rustのパターンマッチを使えば、以下のような書き方ができます。
let maybe_name = Some("にわか");
if let Some(_) = maybe_name {
println!("名前があった。");
}
パターンにマッチするかどうかだけ興味があるのに、こういう書き方をするのは冗長な気がします。
matchesを使えば、もっとシンプルにできます。
let maybe_name = Some("にわか");
if matches!(maybe_name, Some(_)) {
println!("名前があった。");
}
シンプルにかけました。matchesはtrue
もしくはfalse
を返します。
テストコードで確認してみましょう。
#[test]
fn test_matches() {
let mut maybe_name = Some("にわか");
assert_eq!(matches!(maybe_name, Some(_)), true);
maybe_name = None;
assert_eq!(matches!(maybe_name, None), true);
}
終わり。