macro_rules! log {
($($x:expr),*) => {
{
$(
//how to detect $x in the Macro repetition?
)*
}
};
}
我不想使用($($x:ident),*)
。 log!
宏可以记录表达式,然后我要匹配变量类型。
答案 0 :(得分:3)
宏只能访问令牌流,除了明确地提供给宏的内容外,不能再谈论那些令牌。
例如,考虑以下代码:
fn main() {
let mut foo: i32 = 1;
my_macro!(foo);
}
宏my_macro
唯一可用的信息是输入令牌foo
。它可以匹配foo
是一个标识符,但是不能再说了。宏内部不存在存在称为foo
的可变绑定或该绑定为i32
的事实。