# 语法总结(Summary of the Grammar)
-----
> 1.0
> 翻译:[stanzhai](https://github.com/stanzhai)
> 校对:[xielingwang](https://github.com/xielingwang)
> 2.0
> 翻译+校对:[miaosiqi](https://github.com/miaosiqi)
本页包含内容:
[TOC=2,3]
## 语句
> 语句语法
> *语句* → [*表达式*](238111) **;** _可选_
> *语句* → [*声明*](238113) **;** _可选_
> *语句* → [*循环语句*](238112) **;** _可选_
> *语句* → [*分支语句*](238112) **;** _可选_
> *语句* → [*标记语句(Labeled Statement)*](238112)
> *语句* → [*控制转移语句*](238112) **;** _可选_
> *语句* → [*延迟语句*](TODO) **;** _可选_
> *语句* → [*执行语句*](TODO) **;** _可选_
> *多条语句(Statements)* → [*语句*](238112) _可选_
<!-- -->
> 循环语句语法
> *循环语句* → [*for语句*](238112)
> *循环语句* → [*for-in语句*](238112)
> *循环语句* → [*while语句*](238112)
> *循环语句* → [*repeat-while语句*](238112)
<!-- -->
> For 循环语法
> *for语句* → **for** [*for初始条件*](238112)
> *for语句* → **for** **(** [*for初始条件*](238112)
> *for初始条件* → [*变量声明*](238113)
<!-- -->
> For-In 循环语法
> *for-in语句* → **for case** _可选_ [*模式*](238115) _可选_
<!-- -->
> While 循环语法
> *while语句* → **while** [*条件从句*](238112)
> *条件从句* → [*表达式*](TODO)
> *条件从句* → [*表达式*](TODO) *,* [*表达式集*]()
>*条件从句* → [*表达式集*](TODO)
> *条件从句* → [*可用条件 (availability-condition*)](TODO) *|* [*表达式集*]()
> *条件集* → [*条件*](TODO) *|* [*条件*](TODO) *,* [*条件集*]()
> *条件* → [*可用条件(availability-condition)*](TODO) *|* [*个例条件(case-condition)*](TODO) *|* [*可选绑定条件(optional-binding-condition)*](TODO)
> *个例条件(case-condition)* → **case** [*模式*](TODO) [*构造器*](TODO) [*where从句*](TODO)_可选_
> *可选绑定条件(optional-binding-condition)* → [*可选绑定头(optional-binding-head)*](TODO) [*可选绑定连续集(optional-binding-continuation-list)*](TODO) _可选_ [*where从句*](TODO) _可选_
> *可选绑定头(optional-binding-head)* → **let** [*模式 构造器*](TODO) *|* **var** [*模式 构造器*](TODO)
> *可选绑定连续集(optional-binding-contiuation-list)* → [*可选绑定连续(optional-binding-contiuation)*](TODO) *|* [*可选绑定连续(optional-binding-contiuation)*](TODO) *,* [*可选绑定连续集(optional-binding-contiuation-list)*](TODO)
> *可选绑定连续(optional-binding-continuation)* → [*模式 构造器*](TODO) *|* [*可选绑定头(optional-binding-head)*](TODO)
<!-- -->
> Repeat-While语句语法
*repeat-while-statement* → **repeat** [*代码块*](TODO) **while** [*表达式*](TODO)
<!-- -->
> 分支语句语法
> *分支语句* → [*if语句*](238112)
> *分支语句* → [*guard语句*](TODO)
> *分支语句* → [*switch语句*](238112)
<!-- -->
> If语句语法
> *if语句* → **if** [*条件从句*](TODO) [*代码块*](TODO) [*else从句(Clause)*](TODO) _可选_
> *else从句(Clause)* → **else** [*代码块*](238113)
<!-- -->
>Guard 语句语法
>*guard语句* → **guard** [*条件从句*](TODO) **else** [*代码块*](TODO)
<!-- -->
> Switch语句语法
> *switch语句* → **switch** [*表达式*](238111) _可选_ **}**
> *SwitchCase集* → [*SwitchCase*](238112) _可选_
> *SwitchCase* → [*case标签*](238112)
> *SwitchCase* → [*case标签*](238112) **;**
> *case标签* → **case** [*case项集*](238112) **:**
> *case项集* → [*模式*](238115)
> *default标签* → **default** **:**
> *where从句* → **where** [*where表达式*](TODO)
> *where表达式* → [*表达式*](TODO)
<!-- -->
> 标记语句语法
> *标记语句(Labeled Statement)* → [*语句标签*](238112)
> *语句标签* → [*标签名称*](238112) **:**
> *标签名称* → [*标识符*](238109)
<!-- -->
> 控制传递语句(Control Transfer Statement) 语法
> *控制传递语句* → [*break语句*](238112)
> *控制传递语句* → [*continue语句*](238112)
> *控制传递语句* → [*fallthrough语句*](238112)
> *控制传递语句* → [*return语句*](238112)
> *控制传递语句* → [*throw语句*](TODO)
<!-- -->
> Break 语句语法
> *break语句* → **break** [*标签名称*](238112) _可选_
<!-- -->
> Continue 语句语法
> *continue语句* → **continue** [*标签名称*](238112) _可选_
<!-- -->
> Fallthrough 语句语法
> *fallthrough语句* → **fallthrough**
<!-- -->
> Return 语句语法
> *return语句* → **return** [*表达式*](238111) _可选_
<!-- -->
>可用条件(Availability Condition)语法
>*可用条件(availability-condition)* → **#available** **(** [*多可用参数*(availability-arguments)](TODO) **)**
>*多可用参数(availability- arguments)* → [*可用参数(availability-argument)*](TODO)|[*可用参数(availability-argument)*](TODO) , [多可用参数(availability-arguments)](TODO)
>*可用参数(availability- argument)* → [*平台名(platform-name)*](TODO) [*平台版本(platform-version)*](TODO)
>*可用参数(availability- argument)* → *
>*平台名* → **iOS** | **iOSApplicationExtension**
>*平台名* → **OSX** | **OSXApplicationExtension**
>*平台名* → **watchOS**
>*平台版本* → [*十进制数(decimal-digits)*](TODO)
>*平台版本* → [*十进制数(decimal-digits)*](TODO) . [*十进制数(decimal-digits)*](TODO)
>*平台版本* → [*十进制数(decimal-digits)*](TODO) **.** [*十进制数(decimal-digits)*](TODO) **.** [*十进制数(decimal-digits)*](TODO))
<!-- -->
>抛出语句(Throw Statement)语法
>*抛出语句(throw-statement)* → **throw** [*表达式(expression)*](TODO)
<!-- -->
>延迟语句 (defer-statement)语法
>*延迟语句(defer-statement)* → **defer** [*代码块*](TODO)
<!-- -->
>执行语句(do-statement)语法
>*执行语句(do-statement)* → **do** [*代码块*](TODO) [*catch-clauses*](TODO) _可选_
>*catch-clauses* → [*catch-clause*](TODO) [*catch-clauses*](TODO) _可选_
>*catch-clauses* → **catch** [*模式(pattern)*](TODO) _可选_ [*where-clause*](TODO) _可选_ [*代码块(code-block)*](TODO) _可选_
## 泛型参数
> 泛型形参从句(Generic Parameter Clause) 语法
> *泛型参数从句* → **<** [*泛型参数集*](GenericParametersAndArguments.md) _可选_ **>**
> *泛型参数集* → [*泛形参数*](GenericParametersAndArguments.md)
> *泛形参数* → [*类型名称*](238110)
> *泛形参数* → [*类型名称*](238110)
> *泛形参数* → [*类型名称*](238110)
> *约束从句* → **where** [*约束集*](GenericParametersAndArguments.md)
> *约束集* → [*约束*](GenericParametersAndArguments.md)
> *约束* → [*一致性约束*](GenericParametersAndArguments.md)
> *一致性约束* → [*类型标识*](238110)
> *一致性约束* → [*类型标识*](238110)
> *同类型约束* → [*类型标识*](238110)
<!-- -->
> 泛型实参从句语法
> *(泛型参数从句Generic Argument Clause)* → **<** [*泛型参数集*](GenericParametersAndArguments.md) **>**
> *泛型参数集* → [*泛型参数*](GenericParametersAndArguments.md)
> *泛型参数* → [*类型*](238110)
## 声明 (Declarations)
> 声明语法
> *声明* → [*导入声明*](238113)
> *声明* → [*常量声明*](238113)
> *声明* → [*变量声明*](238113)
> *声明* → [*类型别名声明*](238113)
> *声明* → [*函数声明*](238113)
> *声明* → [*枚举声明*](238113)
> *声明* → [*结构体声明*](238113)
> *声明* → [*类声明*](238113)
> *声明* → [*协议声明*](238113)
> *声明* → [*构造器声明*](238113)
> *声明* → [*析构器声明*](238113)
> *声明* → [*扩展声明*](238113)
> *声明* → [*下标声明*](238113)
> *声明* → [*运算符声明*](238113)
> *声明(Declarations)集* → [*声明*](238113) _可选_
<!-- -->
> 顶级(Top Level) 声明语法
> *顶级声明* → [*多条语句(Statements)*](238112) _可选_
<!-- -->
> 代码块语法
> *代码块* → **{** [*多条语句(Statements)*](238112) _可选_ **}**
<!-- -->
> 导入(Import)声明语法
> *导入声明* → [*属性(Attributes)集*](238114)
> *导入类型* → **typealias** | **struct** | **class** | **enum** | **protocol** | **var** | **func**
> *导入路径* → [*导入路径标识符*](238113)
> *导入路径标识符* → [*标识符*](238109)
<!-- -->
> 常数声明语法
> *常量声明* → [*属性(Attributes)集*](238114)
> *模式构造器集* → [*模式构造器*](238113)
> *模式构造器* → [*模式*](238115) _可选_
> *构造器* → **=** [*表达式*](238111)
<!-- -->
> 变量声明语法
> *变量声明* → [*变量声明头(Head)*](238113)
> *变量声明* → [*变量声明头(Head)*](238113)
> *变量声明* → [*变量声明头(Head)*](238113)
> *变量声明* → [*变量声明头(Head)*](238113)
> *变量声明* → [*变量声明头(Head)*](238113)
> *变量声明头(Head)* → [*属性(Attributes)集*](238114) _可选_ **var**
> *变量名称* → [*标识符*](238109)
> *getter-setter块* → **{** [*getter从句*](238113) _可选_ **}**
> *getter-setter块* → **{** [*setter从句*](238113) **}**
> *getter从句* → [*属性(Attributes)集*](238114)
> *setter从句* → [*属性(Attributes)集*](238114)
> *setter名称* → **(** [*标识符*](238109)**
> *getter-setter关键字(Keyword)块* → **{** [*getter关键字(Keyword)从句*](238113) _可选_ **}**
> *getter-setter关键字(Keyword)块* → **{** [*setter关键字(Keyword)从句*](238113) **}**
> *getter关键字(Keyword)从句* → [*属性(Attributes)集*](238114) _可选_ **get**
> *setter关键字(Keyword)从句* → [*属性(Attributes)集*](238114) _可选_ **set**
> *willSet-didSet代码块* → **{** [*willSet从句*](238113) _可选_ **}**
> *willSet-didSet代码块* → **{** [*didSet从句*](238113) **}**
> *willSet从句* → [*属性(Attributes)集*](238114)
> *didSet从句* → [*属性(Attributes)集*](238114)
<!-- -->
> 类型别名声明语法
> *类型别名声明* → [*类型别名头(Head)*](238113)
> *类型别名头(Head)* → [*属性*](TODO) _可选_ [*访问级别修改符(access-level-modifier)*](TODO) **typealias** [*类型别名名称*](238113)
> *类型别名名称* → [*标识符*](238109)
> *类型别名赋值* → **=** [*类型*](238110)
<!-- -->
> 函数声明语法
> *函数声明* → [*函数头*](238113)
> *函数头* → [*属性(Attributes)集*](238114) _可选_ **func**
> *函数名* → [*标识符*](238109)
> *函数签名(Signature)* → [*parameter-clauses*](238113) _可选_
> *函数签名(Signature)* → [*parameter-clauses*](238113) _可选_
> *函数结果* → **->** [*属性(Attributes)集*](238114)
> *函数体* → [*代码块*](238113)
> *参数从句* → [*参数从句*](238113) _可选_
> *参数从句* → **(** **)** | **(** [*参数集*](238113)**
> *参数集* → [*参数*](238113)
> *参数* → **inout** _可选_ **let** _可选_ [*外部参数名*](238113) _可选_
> *参数* → **inout** _可选_ **var** [*外部参数名*](238113) _可选_
> *参数* → [*属性(Attributes)集*](238114)
> *外部参数名* → [*标识符*](238109) | **_**
> *本地参数名* → [*标识符*](238109) | **_**
> *默认参数从句* → **=** [*表达式*](238111)
<!-- -->
> 枚举声明语法
> *枚举声明* → [*属性(Attributes)集*](238114)
> *枚举声明* → [*属性(Attributes)集*](238114)
> *联合式枚举* → **enum** [*枚举名*](238113) _可选_ **}**
> *联合样式枚举成员* → [*union-style-enum-member*](238113) _可选_
> *联合样式枚举成员* → [*声明*](238113)
> *联合式(Union Style)的枚举case从句* → [*属性(Attributes)集*](238114)
> *联合式(Union Style)的枚举case集* → [*联合式(Union Style)的case*](238113)
> *联合式(Union Style)的枚举case* → [*枚举的case名*](238113) _可选_
> *枚举名* → [*标识符*](238109)
> *枚举的case名* → [*标识符*](238109)
> *原始值式枚举* → **enum** [*枚举名*](238113) _可选_ **}**
> *原始值式枚举成员集* → [*原始值式枚举成员*](238113) _可选_
> *原始值式枚举成员* → [*声明*](238113)
> *原始值式枚举case从句* → [*属性(Attributes)集*](238114)
> *原始值式枚举case集* → [*原始值式枚举case*](238113)
> *原始值式枚举case* → [*枚举的case名*](238113) _可选_
> *原始值赋值* → **=** [*字面量*](238109)
> *原始值字面量(raw-value-literal)* → [*数值字面量*](TODO) | [*字符串字面量*](TODO) | [*布尔字面量*](TODO)
<!-- -->
> 结构体声明语法
> *结构体声明* → [*属性(Attributes)集*](238114)
> *结构体名称* → [*标识符*](238109)
> *结构体主体* → **{** [*声明(Declarations)集*](238113) _可选_ **}**
<!-- -->
> 类声明语法
> *类声明* → [*属性(Attributes)集*](238114)
> *类名* → [*标识符*](238109)
> *类主体* → **{** [*声明(Declarations)集*](238113) _可选_ **}**
<!-- -->
> 协议(Protocol)声明语法
> *协议声明* → [*属性(Attributes)集*](238114)
> *协议名* → [*标识符*](238109)
> *协议主体* → **{** [*协议成员声明(Declarations)集*](238113) _可选_ **}**
> *协议成员声明* → [*协议属性声明*](238113)
> *协议成员声明* → [*协议方法声明*](238113)
> *协议成员声明* → [*协议构造器声明*](238113)
> *协议成员声明* → [*协议下标声明*](238113)
> *协议成员声明* → [*协议关联类型声明*](238113)
> *协议成员声明(Declarations)集* → [*协议成员声明*](238113) _可选_
<!-- -->
> 协议属性声明语法
> *协议属性声明* → [*变量声明头(Head)*](238113)
<!-- -->
> 协议方法声明语法
> *协议方法声明* → [*函数头*](238113)
<!-- -->
> 协议构造器声明语法
> *协议构造器声明* → [*构造器头(Head)*](238113)
<!-- -->
> 协议下标声明语法
> *协议下标声明* → [*下标头(Head)*](238113)
<!-- -->
> 协议关联类型声明语法
> *协议关联类型声明* → [*类型别名头(Head)*](238113) _可选_
<!-- -->
> 构造器声明语法
> *构造器声明* → [*构造器头(Head)*](238113)
> *构造器头(Head)* → [*属性(Attributes)集*](238114) _可选_ **init**
> *构造器头(Head)* → [*属性(Attributes)集*](238114) _可选_ **init ?**
> *构造器头(Head)* → [*属性(Attributes)集*](238114) _可选_ **init !**
> *构造器主体* → [*代码块*](238113)
<!-- -->
> 析构器声明语法
> *析构器声明* → [*属性(Attributes)集*](238114)
<!-- -->
> 扩展(Extension)声明语法
> *扩展声明* → [*访问级别修改器*](TODO) _可选_ **extension** [*类型标识*](238110)
> *extension-body* → **{** [*声明(Declarations)集*](238113) _可选_ **}**
<!-- -->
> 下标声明语法
> *下标声明* → [*下标头(Head)*](238113)
> *下标声明* → [*下标头(Head)*](238113)
> *下标声明* → [*下标头(Head)*](238113)
> *下标头(Head)* → [*属性(Attributes)集*](238114)
> *下标结果(Result)* → **->** [*属性(Attributes)集*](238114)
<!-- -->
> 运算符声明语法
> *运算符声明* → [*前置运算符声明*](238113)
> *前置运算符声明* → **prefix** **运算符** [*运算符*](238109) **{** **}**
> *后置运算符声明* → **postfix** **运算符** [*运算符*](238109) **{** **}**
> *中置运算符声明* → **infix** **运算符** [*运算符*](238109) _可选_ **}**
> *中置运算符属性集* → [*优先级从句*](238113) _可选_
> *优先级从句* → **precedence** [*优先级水平*](238113)
> *优先级水平* → 数值 0 到 255,首末项包括在内
> *结和性从句* → **associativity** [*结和性*](238113)
> *结和性* → **left** | **right** | **none**
<!-- -->
声明修改器语法
> *声明修改器* → **类** | **便捷(convenience)** | **动态(dynamic)** | **final** | **中置(infix)** | **lazy** | **可变(mutating)** | **不可变(nonmutating)** | **可选(optional)** | **改写(override)** | **后置** | **前置** | **required** | **static** | **unowned** | **unowned(safe)** | **unowned(unsafe)** | **弱(weak)**
> *声明修改器* → [*访问级别声明器(access-level-modifier)*](TODO)
> *声明修改集* → [*声明修改器*](TODO) [*声明修改器集*](TODO) _可选_
> *访问级别修改器* → **内部的** | **内部的(set)**
> *访问级别修改器* → **私有的** | **私有的(set)**
> *访问级别修改器* → **公共的**
| **公共的(set)**
> *访问级别修改器集* →[*访问级别修改器*](TODO) [*访问级别修改器集*](TODO) _可选_
## 模式
> 模式(Patterns) 语法
> *模式* → [*通配符模式*](238115) _可选_
> *模式* → [*标识符模式*](238115) _可选_
> *模式* → [*值绑定模式*](238115)
> *模式* → [*元组模式*](238115) _可选_
> *模式* → [*枚举个例模式*](238115)
> *模式* → [*可选模式*](TODO)
> *模式* → [*类型转换模式*](238115)
> *模式* → [*表达式模式*](238115)
<!-- -->
> 通配符模式语法
> *通配符模式* → **_**
<!-- -->
> 标识符模式语法
> *标识符模式* → [*标识符*](238109)
<!-- -->
> 值绑定(Value Binding)模式语法
> *值绑定模式* → **var** [*模式*](238115)
<!-- -->
> 元组模式语法
> *元组模式* → **(** [*元组模式元素集*](238115)**
> *元组模式元素集* → [*元组模式元素*](238115)
> *元组模式元素* → [*模式*](238115)
<!-- -->
> 枚举用例模式语法
> *enum-case-pattern* → [*类型标识*](238110) _可选_
<!-- -->
> 可选模式语法
> *可选模式* → [*识别符模式*](TODO) **?**
<!-- -->
> 类型转换模式语法
> *类型转换模式(type-casting-pattern)* → [*is模式*](238115)
> *is模式* → **is** [*类型*](238110)
> *as模式* → [*模式*](238115)
<!-- -->
> 表达式模式语法
> *表达式模式* → [*表达式*](238111)
## 属性
> 属性语法
> *属性* → **@** [*属性名*](238114) _可选_
> *属性名* → [*标识符*](238109)
> *属性参数从句* → **(** [*平衡令牌集*](238114)**
> *属性(Attributes)集* → [*属性*](238114) _可选_
> *平衡令牌集* → [*平衡令牌*](238114) _可选_
> *平衡令牌* → **(** [*平衡令牌集*](238114)**
> *平衡令牌* → **[** [*平衡令牌集*](238114) _可选_ **]**
> *平衡令牌* → **{** [*平衡令牌集*](238114) _可选_ **}**
> *平衡令牌* → **任意标识符, 关键字, 字面量或运算符**
> *平衡令牌* → **任意标点除了(, ), [, ], {, 或 }**
## 表达式
> 表达式语法
> *表达式* → [*try-operator*](TODO) _可选_ [*前置表达式*](238111) _可选_
> *表达式集* → [*表达式*](238111)
<!-- -->
> 前置表达式语法
> *前置表达式* → [*前置运算符*](238109)
> *前置表达式* → [*写入写出(in-out)表达式*](238111)
> *写入写出(in-out)表达式* → **&** [*标识符*](238109)
<!-- -->
> try表达式语法
> *try-operator* → **try** | **try !**
<!-- -->
> 二元表达式语法
> *二元表达式* → [*二元运算符*](238109)
> *二元表达式* → [*赋值运算符*](238111)
> *二元表达式* → [*条件运算符*](238111)
> *二元表达式* → [*类型转换运算符*](238111)
> *二元表达式集* → [*二元表达式*](238111) _可选_
<!-- -->
> 赋值运算符语法
> *赋值运算符* → **=**
<!-- -->
> 三元条件运算符语法
> *三元条件运算符* → **?** [*表达式*](238111) **:**
<!-- -->
> 类型转换运算符语法
> *类型转换运算符* → **is** [*类型*](238110)
> *类型转换运算符* → **as** [*类型*](238110)
> *类型转换运算符* → **as ?** [*类型*](238110)
> *类型转换运算符* → **as !** [*类型*](238110)
<!-- -->
> 主表达式语法
> *主表达式* → [*标识符*](238109) _可选_
> *主表达式* → [*字面量表达式*](238111)
> *主表达式* → [*self表达式*](238111)
> *主表达式* → [*超类表达式*](238111)
> *主表达式* → [*闭包表达式*](238111)
> *主表达式* → [*圆括号表达式*](238111)
> *主表达式* → [*隐式成员表达式*](238111)
> *主表达式* → [*通配符表达式*](238111)
<!-- -->
> 字面量表达式语法
> *字面量表达式* → [*字面量*](238109)
> *字面量表达式* → [*数组字面量*](238111)
> *字面量表达式* → **__FILE__** | **__LINE__** | **__COLUMN__** | **__FUNCTION__**
> *数组字面量* → **[** [*数组字面量项集*](238111) _可选_ **]**
> *数组字面量项集* → [*数组字面量项*](238111)
> *数组字面量项* → [*表达式*](238111)
> *字典字面量* → **[** [*字典字面量项集*](238111) **]** | **[** **:** **]**
> *字典字面量项集* → [*字典字面量项*](238111)
> *字典字面量项* → [*表达式*](238111)
<!-- -->
> Self 表达式语法
> *self表达式* → **self**
> *self表达式* → **self** **.** [*标识符*](238109)
> *self表达式* → **self** **[** [*表达式*](238111) **]**
> *self表达式* → **self** **.** **init**
<!-- -->
> 超类表达式语法
> *超类表达式* → [*超类方法表达式*](238111)
> *超类方法表达式* → **super** **.** [*标识符*](238109)
> *超类下标表达式* → **super** **[** [*表达式*](238111) **]**
> *超类构造器表达式* → **super** **.** **init**
<!-- -->
> 闭包表达式语法
> *闭包表达式* → **{** [*闭包签名(Signational)*](238111) **}**
> *闭包签名(Signational)* → [*参数从句*](238113) _可选_ **in**
> *闭包签名(Signational)* → [*标识符集*](238109) _可选_ **in**
> *闭包签名(Signational)* → [*捕获(Capature)集*](238111) _可选_ **in**
> *闭包签名(Signational)* → [*捕获(Capature)集*](238111) _可选_ **in**
> *闭包签名(Signational)* → [*捕获(Capature)集*](238111) **in**
> *捕获(Capature)集* → **[** [*捕获(Capature)说明符*](238111) **]**
> *捕获(Capature)说明符* → **weak** | **unowned** | **unowned(safe)** | **unowned(unsafe)**
<!-- -->
> 隐式成员表达式语法
> *隐式成员表达式* → **.** [*标识符*](238109)
<!-- -->
> 圆括号表达式(Parenthesized Expression)语法
> *圆括号表达式* → **(** [*表达式元素集*](238111)**
> *表达式元素集* → [*表达式元素*](238111)
> *表达式元素* → [*表达式*](238111)
<!-- -->
> 通配符表达式语法
> *通配符表达式* → **_**
<!-- -->
> 后置表达式语法
> *后置表达式* → [*主表达式*](238111)
> *后置表达式* → [*后置表达式*](238111)
> *后置表达式* → [*函数调用表达式*](238111)
> *后置表达式* → [*构造器表达式*](238111)
> *后置表达式* → [*显示成员表达式*](238111)
> *后置表达式* → [*后置self表达式*](238111)
> *后置表达式* → [*动态类型表达式*](238111)
> *后置表达式* → [*下标表达式*](238111)
> *后置表达式* → [*强制取值(Forced Value)表达式*](238111)
> *后置表达式* → [*可选链(Optional Chaining)表达式*](238111)
<!-- -->
> 函数调用表达式语法
> *函数调用表达式* → [*后置表达式*](238111)
> *函数调用表达式* → [*后置表达式*](238111)
> *后置闭包(Trailing Closure)* → [*闭包表达式*](238111)
<!-- -->
> 构造器表达式语法
> *构造器表达式* → [*后置表达式*](238111) **.** **init**
<!-- -->
> 显式成员表达式语法
> *显示成员表达式* → [*后置表达式*](238111)
> *显示成员表达式* → [*后置表达式*](238111) _可选_
<!-- -->
> 后置Self 表达式语法
> *后置self表达式* → [*后置表达式*](238111) **.** **self**
<!-- -->
> 动态类型表达式语法
> *动态类型表达式* → [*后置表达式*](238111) **.** **dynamicType**
<!-- -->
> 附属脚本表达式语法
> *附属脚本表达式* → [*后置表达式*](238111) **]**
<!-- -->
> 强制取值(Forced Value)语法
> *强制取值(Forced Value)表达式* → [*后置表达式*](238111) **!**
<!-- -->
> 可选链表达式语法
> *可选链表达式* → [*后置表达式*](238111) **?**
## 词法结构
> 标识符语法
> *标识符* → [*标识符头(Head)*](238109) _可选_
> *标识符* → [*标识符头(Head)*](238109) _可选_
> *标识符* → [*隐式参数名*](238109)
> *标识符集* → [*标识符*](238109)
> *标识符头(Head)* → Upper- or lowercase letter A through Z
> *标识符头(Head)* → _
> *标识符头(Head)* → U+00A8, U+00AA, U+00AD, U+00AF, U+00B2–U+00B5, or U+00B7–U+00BA
> *标识符头(Head)* → U+00BC–U+00BE, U+00C0–U+00D6, U+00D8–U+00F6, or U+00F8–U+00FF
> *标识符头(Head)* → U+0100–U+02FF, U+0370–U+167F, U+1681–U+180D, or U+180F–U+1DBF
> *标识符头(Head)* → U+1E00–U+1FFF
> *标识符头(Head)* → U+200B–U+200D, U+202A–U+202E, U+203F–U+2040, U+2054, or U+2060–U+206F
> *标识符头(Head)* → U+2070–U+20CF, U+2100–U+218F, U+2460–U+24FF, or U+2776–U+2793
> *标识符头(Head)* → U+2C00–U+2DFF or U+2E80–U+2FFF
> *标识符头(Head)* → U+3004–U+3007, U+3021–U+302F, U+3031–U+303F, or U+3040–U+D7FF
> *标识符头(Head)* → U+F900–U+FD3D, U+FD40–U+FDCF, U+FDF0–U+FE1F, or U+FE30–U+FE44
> *标识符头(Head)* → U+FE47–U+FFFD
> *标识符头(Head)* → U+10000–U+1FFFD, U+20000–U+2FFFD, U+30000–U+3FFFD, or U+40000–U+4FFFD
> *标识符头(Head)* → U+50000–U+5FFFD, U+60000–U+6FFFD, U+70000–U+7FFFD, or U+80000–U+8FFFD
> *标识符头(Head)* → U+90000–U+9FFFD, U+A0000–U+AFFFD, U+B0000–U+BFFFD, or U+C0000–U+CFFFD
> *标识符头(Head)* → U+D0000–U+DFFFD or U+E0000–U+EFFFD
> *标识符字符* → 数值 0 到 9
> *标识符字符* → U+0300–U+036F, U+1DC0–U+1DFF, U+20D0–U+20FF, or U+FE20–U+FE2F
> *标识符字符* → [*标识符头(Head)*](238109)
> *标识符字符集* → [*标识符字符*](238109) _可选_
> *隐式参数名* → **$** [*十进制数字集*](238109)
<!-- -->
> 字面量语法
> *字面量* → [*数值型字面量*](238109)
> *数值型字面量* → **-** _可选_ [*整形字面量*](TODO) | **-** _可选_ [*浮点型字面量*](TODO)
> *布尔字面量* → **true** | **false**
> *空字面量* → **nil**
<!-- -->
> 整型字面量语法
> *整型字面量* → [*二进制字面量*](238109)
> *整型字面量* → [*八进制字面量*](238109)
> *整型字面量* → [*十进制字面量*](238109)
> *整型字面量* → [*十六进制字面量*](238109)
> *二进制字面量* → **0b** [*二进制数字*](238109) _可选_
> *二进制数字* → 数值 0 到 1
> *二进制字面量字符* → [*二进制数字*](238109) | **_**
> *二进制字面量字符集* → [*二进制字面量字符*](238109) _可选_
> *八进制字面量* → **0o** [*八进制数字*](238109) _可选_
> *八进字数字* → 数值 0 到 7
> *八进制字符* → [*八进制数字*](238109) | **_**
> *八进制字符集* → [*八进制字符*](238109) _可选_
> *十进制字面量* → [*十进制数字*](238109) _可选_
> *十进制数字* → 数值 0 到 9
> *十进制数字集* → [*十进制数字*](238109) _可选_
> *十进制字面量字符* → [*十进制数字*](238109) | **_**
> *十进制字面量字符集* → [*十进制字面量字符*](238109) _可选_
> *十六进制字面量* → **0x** [*十六进制数字*](238109) _可选_
> *十六进制数字* → 数值 0 到 9, a through f, or A through F
> *十六进制字符* → [*十六进制数字*](238109) | **_**
> *十六进制字面量字符集* → [*十六进制字符*](238109) _可选_
<!-- -->
> 浮点型字面量语法
> *浮点数字面量* → [*十进制字面量*](238109) _可选_
> *浮点数字面量* → [*十六进制字面量*](238109)
> *十进制分数* → **.** [*十进制字面量*](238109)
> *十进制指数* → [*浮点数e*](238109)
> *十六进制分数* → **.** [*十六进制数*](238109)
[*十六进制字面量字符集*](TODO)_可选_
> *十六进制指数* → [*浮点数p*](238109)
> *浮点数e* → **e** | **E**
> *浮点数p* → **p** | **P**
> *正负号* → **+** | **-**
<!-- -->
> 字符串型字面量语法
> *字符串字面量* → **"** [*引用文本*](238109) **"**
> *引用文本* → [*引用文本条目*](238109) _可选_
> *引用文本条目* → [*转义字符*](238109)
> *引用文本条目* → **(** [*表达式*](238111)**
> *引用文本条目* → 除了", \, U+000A, or U+000D的所有Unicode的字符
> *转义字符* → **/0** | **\\** | **\t** | **\n** | **\r** | **\"** | **\'**
> *转义字符* → **\u** **{** [*十六进制标量数字集*](TODO) **}**
> *unicode标量数字集* → Between one and eight hexadecimal digits
<!-- -->
> 运算符语法语法
> *运算符* → [*运算符头*](238109) _可选_
> *运算符* → [*点运算符头*](TODO) [*点运算符字符集*](TODO) _可选_
> *运算符字符* → **/** | **=** | **-** | **+** | **!** | ***** | **%** | **<** | **>** | **&** | **|** | **^** | **~** | **?**
> *运算符头* → U+00A1–U+00A7
> *运算符头* → U+00A9 or U+00AB
> *运算符头* → U+00AC or U+00AE
> *运算符头* → U+00B0–U+00B1, U+00B6, U+00BB, U+00BF, U+00D7, or U+00F7
> *运算符头* → U+2016–U+2017 or U+2020–U+2027
> *运算符头* → U+2030–U+203E
> *运算符头* → U+2041–U+2053
> *运算符头* → U+2055–U+205E
> *运算符头* → U+2190–U+23FF
> *运算符头* → U+2500–U+2775
> *运算符头* → U+2794–U+2BFF
> *运算符头* → U+2E00–U+2E7F
> *运算符头* → U+3001–U+3003
> *运算符头* → U+3008–U+3030
> *运算符字符* → [*运算符头*](TODO)
> *运算符字符* → U+0300–U+036F
> *运算符字符* → U+1DC0–U+1DFF
> *运算符字符* → U+20D0–U+20FF
> *运算符字符* → U+FE00–U+FE0F
> *运算符字符* → U+FE20–U+FE2F
> *运算符字符* → U+E0100–U+E01EF
> *运算符字符集* → [*运算符字符*](TODO) [*运算符字符集*](TODO)_可选_
> *点运算符头* → **..**
> *点运算符字符* → **.** | [*运算符字符*](TODO)
> *点运算符字符集* → [*点运算符字符*](TODO) [*点运算符字符集*](TODO) _可选_
> *二元运算符* → [*运算符*](238109)
> *前置运算符* → [*运算符*](238109)
> *后置运算符* → [*运算符*](238109)
## 类型
> 类型语法
> *类型* → [*数组类型*](238110)
<!-- -->
> 类型注解语法
> *类型注解* → **:** [*属性(Attributes)集*](238114)
<!-- -->
> 类型标识语法
> *类型标识* → [*类型名称*](238110)
> *类型名* → [*标识符*](238109)
<!-- -->
> 元组类型语法
> *元组类型* → **(** [*元组类型主体*](238110)**
> *元组类型主体* → [*元组类型的元素集*](238110) **...** _可选_
> *元组类型的元素集* → [*元组类型的元素*](238110)
> *元组类型的元素* → [*属性(Attributes)集*](238114)
> *元素名* → [*标识符*](238109)
<!-- -->
> 函数类型语法
> *函数类型* → [*类型*](238110)
> *函数类型* → [*类型*](TODO) **rethrows** **->** [*类型*](TODO)
<!-- -->
> 数组类型语法
> *数组类型* → **[** [*类型*](238110) **]**
<!-- -->
> 字典类型语法
> *字典类型* → **[** [*类型 **:** 类型*](TODO) **]**
<!-- -->
> 可选类型语法
> *可选类型* → [*类型*](238110) **?**
<!-- -->
> 隐式解析可选类型(Implicitly Unwrapped Optional Type)语法
> *隐式解析可选类型* → [*类型*](238110) **!**
<!-- -->
> 协议合成类型语法
> *协议合成类型* → **protocol** **<** [*协议标识符集*](238110) _可选_ **>**
> *协议标识符集* → [*协议标识符*](238110)
> *协议标识符* → [*类型标识符*](238110)
<!-- -->
> 元(Metatype)类型语法
> *元类型* → [*类型*](238110) **.** **Protocol**
<!-- -->
> 类型继承从句语法
> *类型继承从句* → **:** [*类条件(class-requirement))*](TODO) **,** [*类型继承集*](238110)
> *类型继承从句* → **:** [*类条件(class-requirement))*](TODO)
> *类型继承从句* → **:** [*类型继承集*](TODO)
> *类型继承集* → [*类型标识符*](238110)
> *类条件* → **class**
- 关于
- 欢迎使用 Swift
- 关于 Swift
- Swift 初见
- Swift 版本历史记录
- Swift 1.0 发布内容
- Swift 教程
- 基础部分
- 基本运算符
- 字符串和字符
- 集合类型
- 控制流
- 函数
- 闭包
- 枚举
- 类和结构体
- 属性
- 方法
- 下标
- 继承
- 构造过程
- 析构过程
- 自动引用计数
- 可选链
- 错误处理
- 类型转换
- 嵌套类型
- 扩展
- 协议
- 泛型
- 访问控制
- 高级运算符
- 语言参考
- 关于语言参考
- 词法结构
- 类型
- 表达式
- 语句
- 声明
- 特性
- 模式
- 泛型参数
- 语法总结
- 苹果官方Blog官方翻译
- Access Control 权限控制的黑与白
- 造个类型不是梦-白话Swift类型创建
- WWDC里面的那个“大炮打气球”
- Swift与C语言指针友好合作
- 引用类型和值类型的恩怨
- 访问控制和Protected
- 可选类型完美解决占位问题