是否可以忽略 Rust 的指数?

Is it possible to ignore Rust's exponents?

我正在尝试在 Rust 宏中使用字母“E”而不触发数学指数。这是一个例子:

macro_rules! test {
  (0e) => {
    // Do something
  };
}

fn main() {
  test!(0e);
}

这给出了错误 error: expected at least one digit in exponent。可以忽略吗?我知道我可以用其他方式来写,但为了一致性,我更愿意用这种方式来写。

谢谢。

宏输入是一系列令牌树,这些令牌树已使用用于 Rust 代码的相同令牌生成器进行了解析。虽然您可以使用宏创建新语法,但您仍然只能处理 Rust 中有效的标记。

即使是过程宏也无法做到这一点,因为错误发生在调用宏的代码中,在它看到输入之前。

解决方法是要求输入是字符串。然后,程序宏可以根据您的喜好对其进行解析。