我希望定义一个宏
这不可行,因为我不能同时使用两种语法情况。
callme
,可以像这样应用。fn main() {
let a=4;
let b=5;
callme!(
a (b) => { a+b } ;
a (b) => { a*b } ;
a (b) ~ C
);
}
我不知道如何获得一个可用的宏定义来调用callme
。 目前我正在尝试类似这样的东西:
macro_rules! callme {
(
$($A: ident ($B: ident) => {$E: expr}) ; *
) => (
$(
println!("{:?} {:?} {:?}", $A, $B, $E);
) *
);
(
$($A: ident ($B: ident) ~ $Q: ident) ; *
) => (
$(
println!("We got {:?} . {:?} . {:?}", $A, $B, $Q);
) *
);
}
这不可行,因为我不能同时使用两种语法情况。