标识符

identifiers.md
commit: 28d628166940ffa982a1da552e0acfcc88ff8889
本章译文最后维护日期:2021-04-23

词法分析:
IDENTIFIER_OR_KEYWORD :
      XID_start XID_continue*
   | _ XID_continue+

RAW_IDENTIFIER : r# IDENTIFIER_OR_KEYWORD 排除 crate, self, super, Self

NON_KEYWORD_IDENTIFIER : IDENTIFIER_OR_KEYWORD *排除严格关键字保留关键字 *

IDENTIFIER :
NON_KEYWORD_IDENTIFIER | RAW_IDENTIFIER

标识符是如下形式的任何非空 Unicode 字符串:

要么是:

要么是:

  • 首字符是 _
  • 整个字符串由多个字符组成。单个 _ 不是有效标识符。
  • 其余字符拥有 XID_continue 字符属性。

注意XID_startXID_continue 作为字符属性涵盖了用于构成常见的 C 和 Java语言族标识符的字符范围。

除了有形式前缀 r# 修饰外,原生标识符(raw identifier)与普通标识符类似。(注意形式前缀 r# 不包括在实际标识符中。)与普通标识符不同,原生标识符可以是除上面列出的 RAW_IDENTIFIER 之外的任何严格关键字或保留关键字。