我喜欢 Rust 带有很多宏,这些宏将计算转移到编译时,而不是重复地转移到运行时。
print!
及其所有使用 format_args!
的变体 See source code都是很好的例子。
不幸的是,在源代码中您看到注释 /* compiler built-in */
而不是直接在源文件中实现。
Rust 是否也有能力让用户编写像宏这样复杂的逻辑?如果可以,我该怎么做?
最佳答案
复杂宏通常作为过程宏实现,您可以在The Rust Programming Language中了解更多信息或在 The Rust Reference书。
您还可以使用所谓的声明性宏 实现非常复杂的事情,看看优秀的The Little Book of Rust Macros .
在 YouTube 上有几个关于这些的讨论,但您可能会发现以下内容特别有趣,这是在 2018 年 RustConf 上给出的,Chris Wong 的 My Little Procedural Macro:
关于rust - 如何在用户空间中实现复杂的宏,如 `format_args!`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56197213/