30.2. 标识符

标识符(identifier) 可以由以下的字符开始:大写或小写的字母 A 到 Z、下划线(_)、基本多文种平面(Basic Multilingual Plane)中非字符数字组合的 Unicode 字符以及基本多文种平面以外的非个人专用区字符。在首字符之后,允许使用数字和组合 Unicode 字符。

使用保留字作为标识符,需要在其前后增加反引号( `)。例如,`class` 不是合法的标识符,但可以使用class 。反引号不属于标识符的一部分,``x x 表示同一标识符。

闭包中如果没有明确指定参数名称,参数将被隐式命名为 $0$1$2 等等。这些命名在闭包作用域范围内是合法的标识符。

编译器给含有属性包装器呈现值的属性自动合成以美元符号($ )开头的标识符。你的代码可以与这些标识符进行交互,,但是不能使用该前缀声明标识符。更详细的介绍,请查看 特性 章节中的属性包装器部分。

标识符语法

identifier

标识符 → 头部标识符 标识符字符组可选

标识符[头部标识符](/swift/yu-yan-can-kao/02_lexical_structure#identifier-head) [标识符字符组](/swift/yu-yan-can-kao/02_lexical_structure#identifier-characters)可选

标识符 → [隐式参数名

identifier-list

标识符列表 → 标识符 | 标识符 , 标识符列表

identifier-head

头部标识符 → 大写或小写字母 A - Z

头部标识符_

头部标识符 → U+00A8,U+00AA,U+00AD,U+00AF,U+00B2–U+00B5,或者 U+00B7–U+00BA

头部标识符 → U+00BC–U+00BE,U+00C0–U+00D6,U+00D8–U+00F6,或者 U+00F8–U+00FF

头部标识符 → U+0100–U+02FF,U+0370–U+167F,U+1681–U+180D,或者 U+180F–U+1DBF

头部标识符 → U+1E00–U+1FFF

头部标识符 → U+200B–U+200D,U+202A–U+202E,U+203F–U+2040,U+2054,或者 U+2060–U+206F

头部标识符 → U+2070–U+20CF,U+2100–U+218F,U+2460–U+24FF,或者 U+2776–U+2793

头部标识符 → U+2C00–U+2DFF 或者 U+2E80–U+2FFF

头部标识符 → U+3004–U+3007,U+3021–U+302F,U+3031–U+303F,或者 U+3040–U+D7FF

头部标识符 → U+F900–U+FD3D,U+FD40–U+FDCF,U+FDF0–U+FE1F,或者 U+FE30–U+FE44

头部标识符 → U+FE47–U+FFFD

头部标识符 → U+10000–U+1FFFD,U+20000–U+2FFFD,U+30000–U+3FFFD,或者 U+40000–U+4FFFD

头部标识符 → U+50000–U+5FFFD,U+60000–U+6FFFD,U+70000–U+7FFFD,或者 U+80000–U+8FFFD

头部标识符 → U+90000–U+9FFFD,U+A0000–U+AFFFD,U+B0000–U+BFFFD,或者 U+C0000–U+CFFFD

头部标识符 → U+D0000–U+DFFFD 或者 U+E0000–U+EFFFD

identifier-character

标识符字符 → 数值 0 - 9

标识符字符 → U+0300–U+036F,U+1DC0–U+1DFF,U+20D0–U+20FF,或者 U+FE20–U+FE2F

标识符字符 → 头部标识符

identifier-characters

标识符字符组 → 标识符字符 标识符字符组可选

implicit-parameter-name

隐式参数名$ 十进制数字列表

property-wrapper-projection

属性包装器呈现值$ 标识符字符组