如何测试宏中的标识符是否以下划线开头?
How do I test if a identifier in a macro starts with an underscore?
我需要检查标识符是否以下划线开头。这不起作用:
#[macro_export]
macro_rules! UNDECORED {
(_$_i:ident) => {... do something if underscored};
($_i:ident) => {... do something else};
}
哪里错了?
宏接收 "tokens" 作为输入;前导下划线不是单独的标记,您不能匹配部分标记。
您可以 stringify!
标识符并在运行时匹配名称。
我需要检查标识符是否以下划线开头。这不起作用:
#[macro_export]
macro_rules! UNDECORED {
(_$_i:ident) => {... do something if underscored};
($_i:ident) => {... do something else};
}
哪里错了?
宏接收 "tokens" 作为输入;前导下划线不是单独的标记,您不能匹配部分标记。
您可以 stringify!
标识符并在运行时匹配名称。