4.2.2.1 declarative macros


文档摘要

4.2.2.1 declarative macros 你有没有在深夜调试一个 宏时,盯着编译器报错信息发呆——不是语法错,不是类型错,而是它根本没展开你预期的代码? 你写好了 , , 甚至加了 重复块,可一运行, 里出来的 AST 却像被谁悄悄动过手脚:变量名变了、作用域塌了、生命周期标注莫名其妙消失了…… 更糟的是,你翻遍《Rust Reference》宏章节,看到的全是“宏按左到右贪婪匹配”“模式必须完全消耗输入”这类教科书式断言,却找不到一句告诉你:当你的宏在泛型上下文中展开失败,真正拦住它的,往往不是语法,而是宏展开时的 hygiene(卫生机制)与早期解析阶段的标识符绑定冲突。 这不是玄学。这是 declarative macros 在 Rust 1.


发布者: 作者: 转发
评论区 (0)
U