我喜欢Rust带有很多宏,这些宏将计算移至编译时,而不是重复地移至运行时。
print!
及其使用format_args!
See source code的所有变体就是很好的例子。
不幸的是,在源代码中,您看到的是注释 /* compiler built-in */
,而不是直接在源文件中的实现。
Rust是否有能力让用户编写诸如宏之类的复杂逻辑?如果是这样,我该怎么办?
答案 0 :(得分:1)
复杂宏通常被实现为过程宏,您可以在The Rust Programming Language或The Rust Reference书籍中了解更多信息。
您还可以使用所谓的声明性宏完成非常复杂的事情,看看出色的The Little Book of Rust Macros。
在YouTube上有很多关于这些的讨论,但是您可能会发现以下内容特别有趣,这是克里斯·王(Chris Wong)在RustConf 2018的“我的小程序宏”中发表的: