保留字与陷阱

保留字地雷

这些是关键字,不能当变量名 / 字段名 / 参数名,否则报「意外的标记」。最常被误用的:

结果  类型  选项  通道  尝试  捕获  抛出  最终
继续  跳出  返回  等待  异步  新建  选择  情况  在  作为  未来

中文母语者很自然会想用 变量 结果 = ... / 变量 类型: 字符串 —— 会失败。改用别名:计算结果 / 结果值 / 类型名 / 数据类型

编译器会给 rustc 风格错误,看到「X 是 qi 的保留字」就换个名。

为什么不能降级成上下文关键字

结果<T,E> / 选项<T> / 通道<T> / 未来<T> 是泛型类型语法,把这些词当标识符会和 < 产生不可消解的 LALR(1) 歧义(名字<T> 泛型 vs 名字 < 表达式 比较)——这是解析器的理论限制(C++ 著名的「most vexing parse」)。

其他注意