我无法理解在哪里定义了惰性静态@TAIL
和@MAKE
及其特定用例。
如果我正确理解了internal rules,则本示例中@as_expr
的主要用法是隐藏as_expr!
(或通常来说,以前定义的宏),使其不被导出,即更改全局宏名称空间的方法。然后,@TAIL
或@MAKE
应该已经是宏,而我在lazy_static source中找不到它们。
答案 0 :(得分:2)
您链接到定义。 @TAIL
就在137下方三行,@MAKE
在162上。
@name
在任何方面都不特殊。绝对没有特殊行为。这只是一个令牌序列,无法显示在“正常”代码中,因此不太可能意外地与其他规则匹配。 @as_expr
不会隐藏as_expr!
宏,而是使用 来定义公开可见的as_expr!
宏。