在 C 中,如果你愿意,你可以:
#define do {
#define end }
// ...
if (foo == bar) do
foo += 5;
bar /= foo;
end
有没有办法在 Rust 中做这样的事情?
最佳答案
没有(谢天谢地)。 Rust 宏必须始终展开为完整的 AST 节点。
如果您需要文本替换,请使用适合该工作的工具,例如sed
、awk
、m4
、C 预处理器等。这可能由构建脚本驱动。
关于macros - 有没有办法让 Rust 宏像在 C 中一样充当文本替换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48613240/