1.0 翻译:stanzhai 校对:xielingwang
2.0 翻译+校对:miaosiqi
4.1 翻译+校对:mylittleswift
本页包含内容:
语句语法
语句 → 表达式 ; 可选 语句 → 声明 ; 可选 语句 → 循环语句 ; 可选 语句 → 分支语句 ; 可选 语句 → 标记语句(Labeled Statement) 语句 → 控制转移语句 ; 可选 语句 → 延迟语句 ; 可选
语句 → 执行语句 ; 可选
多条语句(Statements) → 语句 多条语句(Statements) 可选
循环语句语法
循环语句 → for 语句 循环语句 → for-in 语句 循环语句 → [while 语句](../chapter3/10_Statements.html#wheetatype 类型 ile_statement) 循环语句 → repeat-while 语句
For 循环语法
for 语句 → for for 初始条件 可选 ; 表达式 可选 ; 表达式 可选 代码块 for 语句 → for ( for 初始条件 可选 ; 表达式 可选 ; 表达式 可选 ) 代码块 for 初始条件 → 变量声明 | 表达式集
For-In 循环语法
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-statement → repeat 代码块 while 表达式
分支语句语法
If 语句语法
if 语句 → if 条件从句 代码块 else 从句(Clause) 可选 else 从句(Clause) → else 代码块 | else if 语句
Guard 语句语法
Switch 语句语法
switch 语句 → switch 表达式 { SwitchCase 可选 } SwitchCase 集 → SwitchCase SwitchCase 集 可选 SwitchCase → case 标签 多条语句(Statements) | default 标签 多条语句(Statements) SwitchCase → case 标签 ; | 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 | macOSApplicationExtension 平台名 → watchOS 平台名 → tvOS 平台版本 → 十进制数(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-clauses → catch-clause catch-clauses 可选 catch-clauses → catch 模式(pattern) 可选 where-clause 可选 代码块(code-block) 可选
泛型形参从句(Generic Parameter Clause)语法
泛型参数从句 → < 泛型参数集 约束从句 可选 > 泛型参数集 → 泛形参数 | 泛形参数 , 泛型参数集 泛形参数 → 类型名称 泛形参数 → 类型名称 : 类型标识 泛形参数 → 类型名称 : 协议合成类型 约束从句 → where 约束集 约束集 → 约束 | 约束 , 约束集 约束 → 一致性约束 | 同类型约束 一致性约束 → 类型标识 : 类型标识 一致性约束 → 类型标识 : 协议合成类型 同类型约束 → 类型标识 == 类型
泛型实参从句语法
(泛型参数从句 Generic Argument Clause) → < 泛型参数集 > 泛型参数集 → 泛型参数 | 泛型参数 , 泛型参数集 泛型参数 → 类型
声明语法
声明 → 导入声明 声明 → 常量声明 声明 → 变量声明 声明 → 类型别名声明 声明 → 函数声明 声明 → 枚举声明 声明 → 结构体声明 声明 → 类声明 声明 → 协议声明 声明 → 构造器声明 声明 → 析构器声明 声明 → 扩展声明 声明 → 下标声明 声明 → 运算符声明 声明(Declarations)集 → 声明 声明(Declarations)集 可选
顶级(Top Level)声明语法
顶级声明 → 多条语句(Statements) 可选
代码块语法
代码块 → { 多条语句(Statements) 可选 }
导入(Import)声明语法
导入声明 → 属性(Attributes)集 可选 import 导入类型 可选 导入路径 导入类型 → typealias | struct | class | enum | protocol | var | func 导入路径 → 导入路径标识符 | 导入路径标识符 . 导入路径 导入路径标识符 → 标识符 | 运算符
常数声明语法
常量声明 → 属性(Attributes)集 可选 声明修改符(Modifiers)集 可选 let 模式构造器集 模式构造器集 → 模式构造器 | 模式构造器 , 模式构造器集 模式构造器 → [模式](../ chapter3/07_Patterns.html#pattern) 构造器 可选 构造器 → = 表达式
变量声明语法
变量声明 → 变量声明头(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) 类型继承从句 可选 类型别名赋值 可选
构造器声明语法
构造器声明 → 构造器头(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)语法
模式 → 通配符模式 类型注解 可选 模式 → 标识符模式 [类型注解](../chapter3/03_Types.html#type_annotati Value Bindingon ) 可选 模式 → 值绑定模式 模式 → 元组模式 类型注解 可选
通配符模式语法
通配符模式 → _
标识符模式语法
标识符模式 → 标识符
值绑定(Value Binding)模式语法
元组模式语法
元组模式 → ( 元组模式元素集 可选 ) 元组模式元素集 → 元组模式元素 | 元组模式元素 , 元组模式元素集 元组模式元素 → 模式
枚举用例模式语法
enum-case-pattern → 类型标识 可选 . 枚举的 case 名 元组模式 可选
可选模式语法
可选模式 → 识别符模式 ?
类型转换模式语法
类型转换模式(type-casting-pattern) → is 模式 | as 模式 is 模式 → is 类型 as 模式 → 模式 as 类型
表达式模式语法
表达式模式 → 表达式
属性语法
属性 → @ 属性名 属性参数从句 可选 属性名 → 标识符 属性参数从句 → ( 平衡令牌集 可选 ) 属性(Attributes)集 → 属性 属性(Attributes)集 可选 平衡令牌集 → 平衡令牌 平衡令牌集 可选 平衡令牌 → ( 平衡令牌集 可选 ) 平衡令牌 → [ 平衡令牌集 可选 ] 平衡令牌 → { 平衡令牌集 可选 } 平衡令牌 → 任意标识符、关键字、字面量或运算符 平衡令牌 → 任意标点除了(、)、[、]、{ 或 }
表达式语法
表达式 → try-operator 可选 前置表达式 二元表达式集 可选 表达式集 → 表达式 | 表达式 , 表达式集
前置表达式语法
前置表达式 → 前置运算符 可选 后置表达式 前置表达式 → 写入写出(in-out)表达式 写入写出(in-out)表达式 → & 标识符
try 表达式语法
try-operator → try | 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 正负号 可选 十六进制字面量 浮点数 e → e | E 浮点数 p → p | 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 可选 元素名 类型注解 元素名 → 标识符
函数类型语法
数组类型语法
数组类型 → [ 类型 ]
字典类型语法
字典类型 → [ 类型 : 类型 ]
可选类型语法
可选类型 → 类型 ?
隐式解析可选类型(Implicitly Unwrapped Optional Type)语法
隐式解析可选类型 → 类型 !
协议合成类型语法
协议合成类型 → protocol < 协议标识符集 可选 > 协议标识符集 → 协议标识符 | 协议标识符 , 协议标识符集 协议标识符 → 类型标识符
元(Metatype)类型语法
类型继承从句语法
类型继承从句 → : 类条件(class-requirement)) , 类型继承集 类型继承从句 → : 类条件(class-requirement)) 类型继承从句 → : 类型继承集 类型继承集 → 类型标识符 | 类型标识符 , 类型继承集 类条件 → class