macros - 在 Rust 宏 2.0 中使用内部规则

标签 macros rust

我无法理解 lazy-static 的 @TAIL 在哪里和 @MAKE已定义及其特定用例。

如果我理解了internal rules正确地,示例中 @as_expr 的主要用法是隐藏 as_expr!(或者通常,以前定义的宏)不被导出,即它是一种改变全局的方法宏命名空间。然后,@TAIL@MAKE 应该已经是一个宏,而我在 lazy_static source 中找不到它们。 .

最佳答案

链接到定义。 @TAIL 就在 137 向下三行,@MAKE 在 162。

@name 在任何方面都不是特别的。绝对没有特殊行为。它只是不能出现在“正常”代码中的一系列标记,因此不太可能意外匹配到其他规则。 @as_expr 不隐藏 as_expr! 宏,它用于而不是定义公开可见的 as_expr! 宏。

关于macros - 在 Rust 宏 2.0 中使用内部规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52808949/

相关文章:

c - 我们什么时候在#define 中进行类型转换

rust - Rust 中枚举的展平向量

mysql - 如何将 Homebrew 安装的 mysql-client 与 diesel-cli 链接起来?

rust - Rust 结构定义中的最后一个逗号是必要的吗?

c - 整数上的无分支条件——很快,但它们能变得更快吗?

ms-access - 如何安排宏在 Access 2007 中自动运行

excel - 单击用户窗体上的按钮(调用按钮单击事件)

rust - 如何忽略序列的部分项

for-loop - 在循环 block 外使用 enumerate 的索引

c - 长度宏的问题