是否有可能根据参数的数量重复执行某个操作n次,而无需使用实际参数?我的用例是实现一个枚举
变量,它接受1个或多个类型参数以及使用通配符匹配枚举变量的实现。因此,通配符的数量将取决于提供的参数数量。
例如:
macro_rules! impl_enum {
($name: ident, $($params: ty)+, $val:expr) => {
enum MyEnum {
$name($($params)+,)
}
impl MyEnum {
fn get_val(self) {
match self {
MyEnum::$name(??????) => $val
}
}
}
}
}
现在我想要输出的是:
impl_enum!(Variant1, Type1 Type2 Type3, 42);
成为
enum MyEnum {
Variant1(Type1, Type2, Type3),
}
impl MyEnum {
fn get_val(self) {
match self {
MyEnum::Variant1(_,_,_) => 42,
}
}
}
可以的吗?