我需要检查标识符是否以下划线开头。这不起作用:

#[macro_export]
macro_rules! UNDECORED {
    (_$_i:ident) => {... do something if underscored};
    ($_i:ident) => {... do something else};
}

错误在哪里?

最佳答案

宏接收“ token ”作为输入;前导下划线不是单独的标记,并且您不能匹配部分标记。

您可以 stringify! 标识符并在运行时匹配名称。

关于macros - 如何测试宏中的标识符是否以下划线开头?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47486694/

10-14 06:52