有没有办法让Rust宏充当C中的文本替换?

Rar*_*ima 3 macros preprocessor rust

在C中,如果你愿意,你可以:

#define    do     {
#define    end    }

// ...

if (foo == bar) do
    foo += 5;
    bar /= foo;
end
Run Code Online (Sandbox Code Playgroud)

有没有办法在Rust做这样的事情?

She*_*ter 8

不(谢天谢地).Rust宏必须始终扩展为完整的AST节点.

如果您需要文本替换,使用适合这份工作的工具,例如sed,awk,m4,C预处理等,可以很可能是由构建脚本来驱动.

  • @RaresDima明白地说,我认为这只是你需要成为一名专业程序员的东西.不同的语言有不同的语法,习语,命名约定,缩进样式等.*在罗马时,像罗马人那样做*.如果用关键字替换curlies,或者如果你使用空格敏感,那么你就不再编写Rust了**.然后,您必须将您看到的每个示例翻译成您的方言,在寻求帮助时翻译回来,您的编辑或工具无法得到帮助.那时,您也可以编写自己的语言. (14认同)