【发布时间】:2017-09-12 21:57:32
【问题描述】:
我想定义一个可以像这样应用的宏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);
) *
);
}
这不起作用,因为我不能同时使用这两种语法情况。
【问题讨论】: