fn check(x: i32) -> bool {
print!("{}", x);
false
}
fn main() {
match (1, 2) {
(x, _) | (_, x) if check(x) => {
print!("3")
}
_ => print!("4"),
}
}
match
match
不只是可以匹配模式,多模式匹配,甚至在後面加上條件。
這裡需要分類的是- 多模式之間,屬於同一組
- 條件檢查作用於全部模式
- 邏輯
|
之間,為短路關係
從這裡可以看出來,最後肯定是列印的4
。
其中(x, _)
和(_, x)
分別要進行check(x)
檢測。
檢測過程中會列印1
和2
。
最終結果是124
124
本作品採用《CC 協議》,轉載必須註明作者和本文連結