【问题标题】:How can I implement complicated macros like `format_args!` in user space?如何在用户空间中实现复杂的宏,例如 `format_args!`?
【发布时间】:2019-05-18 08:23:23
【问题描述】:

我喜欢 Rust 带有许多宏,它们将计算转移到编译时而不是重复地转移到运行时。

print! 及其所有使用format_args! See source code 的变体都是很好的例子。

不幸的是,在源代码中您看到的是注释/* compiler built-in */,而不是源文件中的直接实现。

Rust 是否也有能力让用户编写宏这样的复杂逻辑?如果是这样,我该怎么做?

【问题讨论】:

    标签: rust macros


    【解决方案1】:

    复杂的宏通常实现为过程宏,您可以在The Rust Programming LanguageThe Rust Reference 书籍中了解更多信息。

    你也可以用所谓的声明性宏来实现非常复杂的事情,看看优秀的The Little Book of Rust Macros

    YouTube 上有几个关于这些的讨论,但您可能会发现以下内容特别有趣,这是 Chris Wong 在 RustConf 2018 上发表的,我的小程序宏:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-25
      • 2011-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多