将宏匹配器插值为字符串文字

时间:2017-11-10 07:40:22

标签: rust

此代码段打印$i,但我希望它能打印foo。我已经尝试了一些关于这个主题的变体,但是我无法在文档中找到有关此行为的任何内容。是否有语法使这成为可能?

macro_rules! print_ident {
    ($i:ident) => {
        println!("$i");  
    };
}

fn main() {
    print_ident!(foo);
}

1 个答案:

答案 0 :(得分:4)

Yes

macro_rules! print_ident {
    ($i:ident) => {
        println!(stringify!($i));  
    };
}

fn main() {
    print_ident!(foo);
}