[Rust] [Rust] 请教如何正确使用宏递归

macro_rules! xxx{ ($e:expr) => { if $e > 0 { xxx!( $e-1 ); }; };
}
xxx!(1);

这个代码为什么死递归?通过 trace_macro 发现 $e > 0 在编译器没有真正执行,而不是不断的拼接为

if 1 - 1 - 1 - 1 - 1 - ...

发表回复

您的电子邮箱地址不会被公开。