这里的教程为Swift官方教程中文版。

语法总结(Summary of the Grammar)


1.0 翻译:stanzhai 校对:xielingwang

2.0 翻译+校对:miaosiqi

本页包含内容:

语句

语句语法
语句表达式 ; 可选
语句声明 ; 可选
语句循环语句 ; 可选
语句分支语句 ; 可选
语句标记语句(Labeled Statement)
语句控制转移语句 ; 可选
语句延迟语句 ; 可选

语句执行语句 ; 可选

多条语句(Statements)语句 多条语句(Statements) 可选

循环语句语法
循环语句for语句
循环语句for-in语句
循环语句while语句
循环语句repeat-while语句

For 循环语法
for语句for for初始条件 可选 ; 表达式 可选 ; 表达式 可选 代码块
for语句for ( for初始条件 可选 ; 表达式 可选 ; 表达式 可选 ) 代码块
for初始条件变量声明 | 表达式集

For-In 循环语法
for-in语句for case 可选 模式 in 表达式 代码块 where从句 可选

While 循环语法
while语句while 条件从句 代码块
条件从句表达式

条件从句表达式 , 表达式集

条件从句表达式集

条件从句可用条件 (availability-condition) | 表达式集

条件集条件 | 条件 , 条件集

条件可用条件(availability-condition) | 个例条件(case-condition) | 可选绑定条件(optional-binding-condition)

个例条件(case-condition)case 模式 构造器 where从句可选

可选绑定条件(optional-binding-condition)可选绑定头(optional-binding-head) 可选绑定连续集(optional-binding-continuation-list) 可选 where从句 可选

可选绑定头(optional-binding-head)let 模式 构造器 | var 模式 构造器

可选绑定连续集(optional-binding-contiuation-list)可选绑定连续(optional-binding-contiuation) | 可选绑定连续(optional-binding-contiuation) 可选绑定连续集(optional-binding-contiuation-list)

可选绑定连续(optional-binding-continuation)模式 构造器 | 可选绑定头(optional-binding-head)

Repeat-While语句语法 repeat-while-statementrepeat 代码块 while 表达式

分支语句语法
分支语句if语句

分支语句guard语句

分支语句switch语句

If语句语法
if语句if 条件从句 代码块 else从句(Clause) 可选

else从句(Clause)else 代码块 | else if语句

Guard 语句语法 guard语句guard 条件从句 else 代码块

Switch语句语法
switch语句switch 表达式 { SwitchCase 可选 }
SwitchCase集SwitchCase SwitchCase集 可选
SwitchCasecase标签 多条语句(Statements) | default标签 多条语句(Statements)
SwitchCasecase标签 ; | default标签 ;
case标签case case项集 :
case项集模式 where-clause 可选 | 模式 where-clause 可选 , case项集
default标签default :
where从句where where表达式
where表达式表达式

标记语句语法
标记语句(Labeled Statement)语句标签 循环语句 | 语句标签 if语句 | 语句标签 switch语句 语句标签标签名称 :
标签名称标识符

控制传递语句(Control Transfer Statement) 语法
控制传递语句break语句
控制传递语句continue语句
控制传递语句fallthrough语句
控制传递语句return语句 控制传递语句throw语句

Break 语句语法
break语句break 标签名称 可选

Continue 语句语法
continue语句continue 标签名称 可选

Fallthrough 语句语法
fallthrough语句fallthrough

Return 语句语法
return语句return 表达式 可选

可用条件(Availability Condition)语法

可用条件(availability-condition)#available ( 多可用参数(availability-arguments) )

多可用参数(availability- arguments)可用参数(availability-argument)|可用参数(availability-argument) , 多可用参数(availability-arguments)

可用参数(availability- argument)平台名(platform-name) 平台版本(platform-version)

可用参数(availability- argument) → *

平台名iOS | iOSApplicationExtension

平台名OSX | OSXApplicationExtension

平台名watchOS

平台版本十进制数(decimal-digits)

平台版本十进制数(decimal-digits) . 十进制数(decimal-digits)

平台版本十进制数(decimal-digits) . 十进制数(decimal-digits) . 十进制数(decimal-digits))

抛出语句(Throw Statement)语法

抛出语句(throw-statement)throw 表达式(expression)

延迟语句 (defer-statement)语法

延迟语句(defer-statement)defer 代码块

执行语句(do-statement)语法

执行语句(do-statement)do 代码块 catch-clauses 可选

catch-clausescatch-clause catch-clauses 可选

catch-clausescatch 模式(pattern) 可选 where-clause 可选 代码块(code-block) 可选

泛型参数

泛型形参从句(Generic Parameter Clause) 语法
泛型参数从句< 泛型参数集 约束从句 可选 >
泛型参数集泛形参数 | 泛形参数 , 泛型参数集
泛形参数类型名称
泛形参数类型名称 : 类型标识
泛形参数类型名称 : 协议合成类型
约束从句where 约束集
约束集约束 | 约束 , 约束集
约束一致性约束 | 同类型约束
一致性约束类型标识 : 类型标识
一致性约束类型标识 : 协议合成类型
同类型约束类型标识 == 类型

泛型实参从句语法
(泛型参数从句Generic Argument Clause)< 泛型参数集 >
泛型参数集泛型参数 | 泛型参数 , 泛型参数集
泛型参数类型

声明 (Declarations)

声明语法
声明导入声明
声明常量声明
声明变量声明
声明类型别名声明
声明函数声明
声明枚举声明
声明结构体声明
声明类声明
声明协议声明
声明构造器声明
声明析构器声明
声明扩展声明
声明下标脚本声明
声明运算符声明
声明(Declarations)集声明 声明(Declarations)集 可选

顶级(Top Level) 声明语法
顶级声明多条语句(Statements) 可选

代码块语法
代码块{ 多条语句(Statements) 可选 }

导入(Import)声明语法
导入声明属性(Attributes)集 可选 import 导入类型 可选 导入路径
导入类型typealias | struct | class | enum | protocol | var | func
导入路径导入路径标识符 | 导入路径标识符 . 导入路径
导入路径标识符标识符 | 运算符

常数声明语法
常量声明属性(Attributes)集 可选 声明修改符(Modifiers)集 可选 let 模式构造器集
模式构造器集模式构造器 | 模式构造器 , 模式构造器集
模式构造器模式 构造器 可选
构造器= 表达式

变量声明语法
变量声明变量声明头(Head) 模式构造器集
变量声明变量声明头(Head) 变量名 类型注解 代码块
变量声明变量声明头(Head) 变量名 类型注解 getter-setter块
变量声明变量声明头(Head) 变量名 类型注解 getter-setter关键字(Keyword)块
变量声明变量声明头(Head) 变量名 类型注解 构造器 可选 willSet-didSet代码块
变量声明头(Head)属性(Attributes)集 可选 声明修改符(Modifers)集 可选 var
变量名称标识符
getter-setter块{ getter从句 setter从句 可选 }
getter-setter块{ setter从句 getter从句 }
getter从句属性(Attributes)集 可选 get 代码块
setter从句属性(Attributes)集 可选 set setter名称 可选 代码块
setter名称( 标识符 )
getter-setter关键字(Keyword)块{ getter关键字(Keyword)从句 setter关键字(Keyword)从句 可选 }
getter-setter关键字(Keyword)块{ setter关键字(Keyword)从句 getter关键字(Keyword)从句 }
getter关键字(Keyword)从句属性(Attributes)集 可选 get
setter关键字(Keyword)从句属性(Attributes)集 可选 set
willSet-didSet代码块{ willSet从句 didSet从句 可选 }
willSet-didSet代码块{ didSet从句 willSet从句 }
willSet从句属性(Attributes)集 可选 willSet setter名称 可选 代码块
didSet从句属性(Attributes)集 可选 didSet setter名称 可选 代码块

类型别名声明语法
类型别名声明类型别名头(Head) 类型别名赋值
类型别名头(Head)属性 可选 访问级别修改符(access-level-modifier) typealias 类型别名名称
类型别名名称标识符
类型别名赋值= 类型

函数声明语法
函数声明函数头 函数名 泛型参数从句 可选 函数签名(Signature) 函数体
函数头属性(Attributes)集 可选 声明描述符(Specifiers)集 可选 func
函数名标识符 | 运算符
函数签名(Signature)parameter-clauses throws 可选 函数结果 可选

函数签名(Signature)parameter-clauses rethrows 函数结果 可选
函数结果-> 属性(Attributes)集 可选 类型
函数体代码块
参数从句参数从句 parameter-clauses 可选
参数从句( ) | ( 参数集 ... 可选 )
参数集参数 | 参数 , 参数集
参数inout 可选 let 可选 外部参数名 可选 本地参数名 可选 类型注解 默认参数从句 可选
参数inout 可选 var 外部参数名 本地参数名 可选 类型注解 默认参数从句 可选
参数属性(Attributes)集 可选 类型
外部参数名标识符 | _
本地参数名标识符 | _
默认参数从句= 表达式

枚举声明语法
枚举声明属性(Attributes)集 可选 访问级别修改器(access-level-modifier) 可选 联合式枚举

枚举声明属性(Attributes)集 可选 访问级别修改器(access-level-modifier) 可选 原始值式枚举(raw-value-style-enum)

联合式枚举enum 枚举名 泛型参数从句 可选 类型继承从句(type-inheritance-clause) 可选 { 联合样式枚举成员 可选 }

联合样式枚举成员union-style-enum-member 联合样式枚举成员 可选

联合样式枚举成员声明 | 联合式(Union Style)的枚举case从句

联合式(Union Style)的枚举case从句属性(Attributes)集 可选 case 联合式(Union Style)的枚举case集
联合式(Union Style)的枚举case集联合式(Union Style)的case | 联合式(Union Style)的case , 联合式(Union Style)的枚举case集
联合式(Union Style)的枚举case枚举的case名 元组类型 可选
枚举名标识符
枚举的case名标识符
原始值式枚举enum 枚举名 泛型参数从句 可选 : 类型标识 { 原始值式枚举成员集 可选 }
原始值式枚举成员集原始值式枚举成员 原始值式枚举成员集 可选
原始值式枚举成员声明 | 原始值式枚举case从句
原始值式枚举case从句属性(Attributes)集 可选 case 原始值式枚举case集
原始值式枚举case集原始值式枚举case | 原始值式枚举case , 原始值式枚举case集
原始值式枚举case枚举的case名 原始值赋值 可选
原始值赋值= 字面量 原始值字面量(raw-value-literal)数值字面量 | 字符串字面量 | 布尔字面量

结构体声明语法
结构体声明属性(Attributes)集 可选 访问级别修改器(access-level-modifier) 可选 struct 结构体名称 泛型参数从句 可选 类型继承从句 可选 结构体主体
结构体名称标识符
结构体主体{ 声明(Declarations)集 可选 }

类声明语法
类声明属性(Attributes)集 可选 访问级别修改器(access-level-modifier) class 类名 泛型参数从句 可选 类型继承从句 可选 类主体
类名标识符
类主体{ 声明(Declarations)集 可选 }

协议(Protocol)声明语法
协议声明属性(Attributes)集 可选访问级别修改器(access-level-modifier) protocol 协议名 类型继承从句 可选 协议主体
协议名标识符
协议主体{ 协议成员声明(Declarations)集 可选 }
协议成员声明协议属性声明
协议成员声明协议方法声明
协议成员声明协议构造器声明
协议成员声明协议下标脚本声明
协议成员声明协议关联类型声明
协议成员声明(Declarations)集协议成员声明 协议成员声明(Declarations)集 可选

协议属性声明语法
协议属性声明变量声明头(Head) 变量名 类型注解 getter-setter关键字(Keyword)块

协议方法声明语法
协议方法声明函数头 函数名 泛型参数从句 可选 函数签名(Signature)

协议构造器声明语法
协议构造器声明构造器头(Head) 泛型参数从句 可选 参数从句

协议下标脚本声明语法
协议下标脚本声明下标脚本头(Head) 下标脚本结果(Result) getter-setter关键字(Keyword)块

协议关联类型声明语法
协议关联类型声明类型别名头(Head) 类型继承从句 可选 类型别名赋值 可选

构造器声明语法
构造器声明构造器头(Head) 泛型参数从句 可选 参数从句 构造器主体
构造器头(Head)属性(Attributes)集 可选 声明修改器集(declaration-modifiers) 可选 init
构造器头(Head)属性(Attributes)集 可选 声明修改器集(declaration-modifiers) 可选 init ?

构造器头(Head)属性(Attributes)集 可选 声明修改器集(declaration-modifiers) 可选 init !

构造器主体代码块

析构器声明语法
析构器声明属性(Attributes)集 可选 deinit 代码块

扩展(Extension)声明语法
扩展声明访问级别修改器 可选 extension 类型标识 类型继承从句 可选 extension-body
extension-body{ 声明(Declarations)集 可选 }

下标脚本声明语法
下标脚本声明下标脚本头(Head) 下标脚本结果(Result) 代码块
下标脚本声明下标脚本头(Head) 下标脚本结果(Result) getter-setter块
下标脚本声明下标脚本头(Head) 下标脚本结果(Result) getter-setter关键字(Keyword)块
下标脚本头(Head)属性(Attributes)集 可选 声明修改器(declaration-modifiers) 可选 subscript 参数从句
下标脚本结果(Result)-> 属性(Attributes)集 可选 类型

运算符声明语法
运算符声明前置运算符声明 | 后置运算符声明 | 中置运算符声明
前置运算符声明prefix 运算符 运算符 { }
后置运算符声明postfix 运算符 运算符 { }
中置运算符声明infix 运算符 运算符 { 中置运算符属性集 可选 }
中置运算符属性集优先级从句 可选 结和性从句 可选
优先级从句precedence 优先级水平
优先级水平 → 数值 0 到 255,首末项包括在内 结和性从句associativity 结和性
结和性left | right | none

声明修改器语法

声明修改器 | 便捷(convenience) | 动态(dynamic) | final | 中置(infix) | lazy | 可变(mutating) | 不可变(nonmutating) | 可选(optional) | 改写(override) | 后置 | 前置 | required | static | unowned | unowned(safe) | unowned(unsafe) | 弱(weak)

声明修改器访问级别声明器(access-level-modifier)

声明修改集声明修改器 声明修改器集 可选

访问级别修改器内部的 | 内部的(set)

访问级别修改器私有的 | 私有的(set)

访问级别修改器公共的 | 公共的(set)

访问级别修改器集访问级别修改器 访问级别修改器集 可选

模式

模式(Patterns) 语法
模式通配符模式 类型注解 可选
模式标识符模式 类型注解 可选
模式值绑定模式
模式元组模式 类型注解 可选

模式枚举个例模式
模式可选模式 模式类型转换模式
模式表达式模式

通配符模式语法
通配符模式_

标识符模式语法
标识符模式标识符

值绑定(Value Binding)模式语法
值绑定模式var 模式 | let 模式

元组模式语法
元组模式( 元组模式元素集 可选 )
元组模式元素集元组模式元素 | 元组模式元素 , 元组模式元素集
元组模式元素模式

枚举用例模式语法
enum-case-pattern类型标识 可选 . 枚举的case名 元组模式 可选

可选模式语法 可选模式识别符模式 ?

类型转换模式语法
类型转换模式(type-casting-pattern)is模式 | as模式
is模式is 类型
as模式模式 as 类型

表达式模式语法
表达式模式表达式

属性

属性语法
属性@ 属性名 属性参数从句 可选
属性名标识符
属性参数从句( 平衡令牌集 可选 )
属性(Attributes)集属性 属性(Attributes)集 可选
平衡令牌集平衡令牌 平衡令牌集 可选
平衡令牌( 平衡令牌集 可选 )
平衡令牌[ 平衡令牌集 可选 ]
平衡令牌{ 平衡令牌集 可选 }
平衡令牌任意标识符, 关键字, 字面量或运算符
平衡令牌任意标点除了(, ), [, ], {, 或 }

表达式

表达式语法
表达式try-operator 可选 前置表达式 二元表达式集 可选
表达式集表达式 | 表达式 , 表达式集

前置表达式语法
前置表达式前置运算符 可选 后置表达式
前置表达式写入写出(in-out)表达式
写入写出(in-out)表达式& 标识符

try表达式语法 try-operatortry | try !

二元表达式语法
二元表达式二元运算符 前置表达式
二元表达式赋值运算符 try运算符 可选 前置表达式
二元表达式条件运算符 try运算符 可选 前置表达式
二元表达式类型转换运算符
二元表达式集二元表达式 二元表达式集 可选

赋值运算符语法
赋值运算符=

三元条件运算符语法
三元条件运算符? 表达式 :

类型转换运算符语法
类型转换运算符is 类型

类型转换运算符as 类型

类型转换运算符as ? 类型

类型转换运算符as ! 类型

主表达式语法
主表达式标识符 泛型参数从句 可选
主表达式字面量表达式
主表达式self表达式
主表达式超类表达式
主表达式闭包表达式
主表达式圆括号表达式
主表达式隐式成员表达式
主表达式通配符表达式

字面量表达式语法
字面量表达式字面量
字面量表达式数组字面量 | 字典字面量
字面量表达式__FILE__ | __LINE__ | __COLUMN__ | __FUNCTION__
数组字面量[ 数组字面量项集 可选 ]
数组字面量项集数组字面量项 , 可选 | 数组字面量项 , 数组字面量项集
数组字面量项表达式
字典字面量[ 字典字面量项集 ] | [ : ]
字典字面量项集字典字面量项 , 可选 | 字典字面量项 , 字典字面量项集
字典字面量项表达式 : 表达式

Self 表达式语法
self表达式self
self表达式self . 标识符
self表达式self [ 表达式 ]
self表达式self . init

超类表达式语法
超类表达式超类方法表达式 | 超类下标表达式 | 超类构造器表达式
超类方法表达式super . 标识符
超类下标表达式super [ 表达式 ]
超类构造器表达式super . init

闭包表达式语法
闭包表达式{ 闭包签名(Signational) 可选 多条语句(Statements) }
闭包签名(Signational)参数从句 函数结果 可选 in
闭包签名(Signational)标识符集 函数结果 可选 in
闭包签名(Signational)捕获(Capature)集 参数从句 函数结果 可选 in
闭包签名(Signational)捕获(Capature)集 标识符集 函数结果 可选 in
闭包签名(Signational)捕获(Capature)集 in
捕获(Capature)集[ 捕获(Capature)说明符 表达式 ]
捕获(Capature)说明符weak | unowned | unowned(safe) | unowned(unsafe)

隐式成员表达式语法
隐式成员表达式. 标识符

圆括号表达式(Parenthesized Expression)语法
圆括号表达式( 表达式元素集 可选 )
表达式元素集表达式元素 | 表达式元素 , 表达式元素集
表达式元素表达式 | 标识符 : 表达式

通配符表达式语法
通配符表达式_

后置表达式语法
后置表达式主表达式
后置表达式后置表达式 后置运算符
后置表达式函数调用表达式
后置表达式构造器表达式
后置表达式显示成员表达式
后置表达式后置self表达式
后置表达式动态类型表达式
后置表达式下标表达式
后置表达式强制取值(Forced Value)表达式
后置表达式可选链(Optional Chaining)表达式

函数调用表达式语法
函数调用表达式后置表达式 圆括号表达式
函数调用表达式后置表达式 圆括号表达式 可选 后置闭包(Trailing Closure)
后置闭包(Trailing Closure)闭包表达式

构造器表达式语法
构造器表达式后置表达式 . init

显式成员表达式语法
显示成员表达式后置表达式 . 十进制数字
显示成员表达式后置表达式 . 标识符 泛型参数从句 可选

后置Self 表达式语法
后置self表达式后置表达式 . self

动态类型表达式语法
动态类型表达式后置表达式 . dynamicType

附属脚本表达式语法
附属脚本表达式后置表达式 [ 表达式集 ]

强制取值(Forced Value)语法
强制取值(Forced Value)表达式后置表达式 !

可选链表达式语法
可选链表达式后置表达式 ?

词法结构

标识符语法
标识符标识符头(Head) 标识符字符集 可选
标识符标识符头(Head) 标识符字符集 可选
标识符隐式参数名
标识符集标识符 | 标识符 , 标识符集
标识符头(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)
标识符字符集标识符字符 标识符字符集 可选
隐式参数名$ 十进制数字集

字面量语法
字面量数值型字面量 | 字符串字面量 | 布尔字面量 | 空字面量

数值型字面量- 可选 整形字面量 | - 可选 浮点型字面量

布尔字面量true | false

空字面量nil

整型字面量语法
整型字面量二进制字面量
整型字面量八进制字面量
整型字面量十进制字面量
整型字面量十六进制字面量
二进制字面量0b 二进制数字 二进制字面量字符集 可选
二进制数字 → 数值 0 到 1
二进制字面量字符二进制数字 | _
二进制字面量字符集二进制字面量字符 二进制字面量字符集 可选
八进制字面量0o 八进制数字 八进制字符集 可选
八进字数字 → 数值 0 到 7
八进制字符八进制数字 | _
八进制字符集八进制字符 八进制字符集 可选
十进制字面量十进制数字 十进制字符集 可选
十进制数字 → 数值 0 到 9
十进制数字集十进制数字 十进制数字集 可选
十进制字面量字符十进制数字 | _
十进制字面量字符集十进制字面量字符 十进制字面量字符集 可选
十六进制字面量0x 十六进制数字 十六进制字面量字符集 可选
十六进制数字 → 数值 0 到 9, a through f, or A through F
十六进制字符十六进制数字 | _
十六进制字面量字符集十六进制字符 十六进制字面量字符集 可选

浮点型字面量语法
浮点数字面量十进制字面量 十进制分数 可选 十进制指数 可选
浮点数字面量十六进制字面量 十六进制分数 可选 十六进制指数
十进制分数. 十进制字面量
十进制指数浮点数e 正负号 可选 十进制字面量
十六进制分数. 十六进制数
十六进制字面量字符集可选
十六进制指数浮点数p 正负号 可选 十六进制字面量
浮点数ee | E
浮点数pp | P
正负号+ | -

字符串型字面量语法
字符串字面量" 引用文本 "
引用文本引用文本条目 引用文本 可选
引用文本条目转义字符
引用文本条目( 表达式 )
引用文本条目 → 除了"­, \­, U+000A, or U+000D的所有Unicode的字符
转义字符/0 | \ | \t | \n | \r | \" | \'
转义字符\u { 十六进制标量数字集 }
unicode标量数字集 → Between one and eight hexadecimal digits

运算符语法语法
运算符运算符头 运算符字符集 可选 运算符点运算符头 点运算符字符集 可选
运算符字符/ | = | - | + | ! | * | % | < | > | & | | | ^ | ~ | ?
运算符头 → 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

运算符字符运算符头

运算符字符 → U+0300–U+036F

运算符字符 → U+1DC0–U+1DFF

运算符字符 → U+20D0–U+20FF

运算符字符 → U+FE00–U+FE0F

运算符字符 → U+FE20–U+FE2F

运算符字符 → U+E0100–U+E01EF

运算符字符集运算符字符 运算符字符集可选

点运算符头..

点运算符字符. | 运算符字符

点运算符字符集点运算符字符 点运算符字符集 可选

二元运算符运算符
前置运算符运算符
后置运算符运算符

类型

类型语法
类型数组类型 | 字典类型 | 函数类型 | 类型标识符 | 元组类型 | 可选类型 | 隐式解析可选类型 | 协议合成类型 | 元型类型

类型注解语法
类型注解: 属性(Attributes)集 可选 类型

类型标识语法
类型标识类型名称 泛型参数从句 可选 | 类型名称 泛型参数从句 可选 . 类型标识符
类型名标识符

元组类型语法
元组类型( 元组类型主体 可选 )
元组类型主体元组类型的元素集 ... 可选
元组类型的元素集元组类型的元素 | 元组类型的元素 , 元组类型的元素集
元组类型的元素属性(Attributes)集 可选 inout 可选 类型 | inout 可选 元素名 类型注解
元素名标识符

函数类型语法
函数类型类型 throws 可选 -> 类型
函数类型类型 rethrows -> 类型

数组类型语法
数组类型[ 类型 ]

字典类型语法 字典类型[ 类型 : 类型 ]

可选类型语法
可选类型类型 ?

隐式解析可选类型(Implicitly Unwrapped Optional Type)语法
隐式解析可选类型类型 !

协议合成类型语法
协议合成类型protocol < 协议标识符集 可选 >
协议标识符集协议标识符 | 协议标识符 , 协议标识符集
协议标识符类型标识符

元(Metatype)类型语法
元类型类型 . Type | 类型 . Protocol

类型继承从句语法

类型继承从句: 类条件(class-requirement)) , 类型继承集

类型继承从句: 类条件(class-requirement))

类型继承从句: 类型继承集

类型继承集类型标识符 | 类型标识符 , 类型继承集

类条件class

◀ 泛型参数 Access Control 权限控制的黑与白 ▶