我喜欢Rust附带了许多宏,它将计算移动到编译时,而不是重复地运行时。
print!及其使用format_args! 见源代码的所有变体都是很好的例子。
不幸的是,在源代码中,您看到的是注释/* compiler built-in */,而不是源文件中的直接实现。
Rust有能力让用户编写像宏这样复杂的逻辑吗?如果是的话,我怎样才能做到呢?
发布于 2019-05-18 08:34:10
复杂宏通常是作为过程宏实现的,您可以在https://doc.rust-lang.org/book/ch19-06-macros.html#procedural-macros-for-generating-code-from-attributes或https://doc.rust-lang.org/reference/procedural-macros.html#procedural-macros书籍中更多地了解这些宏。
您还可以使用所谓的声明性宏来完成非常复杂的任务,看看优秀的https://danielkeep.github.io/tlborm/book/index.html。
在YouTube上有几个关于这些问题的讨论,但您可能会发现以下内容特别有趣,这是由克里斯·黄( Chris )在2018年的“我的小程序宏”( My Little Procedural )上发表的:

https://stackoverflow.com/questions/56197213
复制相似问题