如何传递枚举变体以作为函数参数进行匹配?
How do I pass an enum variant to match on as a function parameter?
我想在参数中传递我需要匹配的枚举的哪个部分,如下所示:
enum D {
A(i64),
B(u64),
C(u64, u64),
}
let a = D.A(10);
println!(a.is_of(D.A)); // true
println!(a.is_of(D.B)); // false
我知道我可以为此使用匹配规则,但我希望将此 is_of
方法作为我的枚举选项的输入。
你不能。
- 无法将类型作为函数参数传递。
- 枚举变体不是类型的开头。
如果您可以使用宏而不是函数,请参阅
另请参阅:
Can traits be used on enum types?
我想在参数中传递我需要匹配的枚举的哪个部分,如下所示:
enum D {
A(i64),
B(u64),
C(u64, u64),
}
let a = D.A(10);
println!(a.is_of(D.A)); // true
println!(a.is_of(D.B)); // false
我知道我可以为此使用匹配规则,但我希望将此 is_of
方法作为我的枚举选项的输入。
你不能。
- 无法将类型作为函数参数传递。
- 枚举变体不是类型的开头。
如果您可以使用宏而不是函数,请参阅
另请参阅:
Can traits be used on enum types?