1
我有一些嵌套值的枚舉。我想檢查這個枚舉是否是給定的變體,但沒有指定裏面的內容。請檢查下面的程序:比較枚舉變體,但沒有指定裏面的東西
enum Test {
Zero,
One(u8),
Two(u16),
Four(u32),
}
fn check(x: Test, y: Test) -> bool {
x == y;
}
fn main() {
let x = Test::Two(10);
let b1 = check(x, Test::One);
let b2 = check(x, Test::Two);
let b3 = match x {
Test::Four(_) => true,
_ => false,
}
}
b3
將檢查x
是Test::Four
裏面任意值。我想要在功能check
中完成檢查。目前的代碼不能編譯,我不知道如何只提取枚舉變量沒有相應的內部值。
我想這可以用宏轉換到match
表達式,但是有沒有可能這樣做沒有宏?
我可以看到Test::One
是fn(u16) -> Test {Two}
。我可以使用這個事實嗎?測試x是使用該函數創建的。