這里的教程為Swift官方教程中文版。

語法總結(jié)(Summary of the Grammar)


1.0 翻譯:stanzhai 校對:xielingwang

2.0 翻譯+校對:miaosiqi

本頁包含內(nèi)容:

語句

語句語法
語句表達式 ; 可選
語句聲明 ; 可選
語句循環(huán)語句 ; 可選
語句分支語句 ; 可選
語句標記語句(Labeled Statement)
語句控制轉(zhuǎn)移語句 ; 可選
語句延遲語句 ; 可選

語句執(zhí)行語句 ; 可選

多條語句(Statements)語句 多條語句(Statements) 可選

循環(huán)語句語法
循環(huán)語句for語句
循環(huán)語句for-in語句
循環(huán)語句while語句
循環(huán)語句repeat-while語句

For 循環(huán)語法
for語句for for初始條件 可選 ; 表達式 可選 ; 表達式 可選 代碼塊
for語句for ( for初始條件 可選 ; 表達式 可選 ; 表達式 可選 ) 代碼塊
for初始條件變量聲明 | 表達式集

For-In 循環(huán)語法
for-in語句for case 可選 模式 in 表達式 代碼塊 where從句 可選

While 循環(huán)語法
while語句while 條件從句 代碼塊
條件從句表達式

條件從句表達式 , 表達式集

條件從句表達式集

條件從句可用條件 (availability-condition) | 表達式集

條件集條件 | 條件 , 條件集

條件可用條件(availability-condition) | 個例條件(case-condition) | 可選綁定條件(optional-binding-condition)

個例條件(case-condition)case 模式 構(gòu)造器 where從句可選

可選綁定條件(optional-binding-condition)可選綁定頭(optional-binding-head) 可選綁定連續(xù)集(optional-binding-continuation-list) 可選 where從句 可選

可選綁定頭(optional-binding-head)let 模式 構(gòu)造器 | var 模式 構(gòu)造器

可選綁定連續(xù)集(optional-binding-contiuation-list)可選綁定連續(xù)(optional-binding-contiuation) | 可選綁定連續(xù)(optional-binding-contiuation) , 可選綁定連續(xù)集(optional-binding-contiuation-list)

可選綁定連續(xù)(optional-binding-continuation)模式 構(gòu)造器 | 可選綁定頭(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)語句標簽 循環(huán)語句 | 語句標簽 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 ( 多可用參數(shù)(availability-arguments) )

多可用參數(shù)(availability- arguments)可用參數(shù)(availability-argument)|可用參數(shù)(availability-argument) , 多可用參數(shù)(availability-arguments)

可用參數(shù)(availability- argument)平臺名(platform-name) 平臺版本(platform-version)

可用參數(shù)(availability- argument) → *

平臺名iOS | iOSApplicationExtension

平臺名OSX | OSXApplicationExtension

平臺名watchOS

平臺版本十進制數(shù)(decimal-digits)

平臺版本十進制數(shù)(decimal-digits) . 十進制數(shù)(decimal-digits)

平臺版本十進制數(shù)(decimal-digits) . 十進制數(shù)(decimal-digits) . 十進制數(shù)(decimal-digits))

拋出語句(Throw Statement)語法

拋出語句(throw-statement)throw 表達式(expression)

延遲語句 (defer-statement)語法

延遲語句(defer-statement)defer 代碼塊

執(zhí)行語句(do-statement)語法

執(zhí)行語句(do-statement)do 代碼塊 catch-clauses 可選

catch-clausescatch-clause catch-clauses 可選

catch-clausescatch 模式(pattern) 可選 where-clause 可選 代碼塊(code-block) 可選

泛型參數(shù)

泛型形參從句(Generic Parameter Clause) 語法
泛型參數(shù)從句< 泛型參數(shù)集 約束從句 可選 >
泛型參數(shù)集泛形參數(shù) | 泛形參數(shù) , 泛型參數(shù)集
泛形參數(shù)類型名稱
泛形參數(shù)類型名稱 : 類型標識
泛形參數(shù)類型名稱 : 協(xié)議合成類型
約束從句where 約束集
約束集約束 | 約束 , 約束集
約束一致性約束 | 同類型約束
一致性約束類型標識 : 類型標識
一致性約束類型標識 : 協(xié)議合成類型
同類型約束類型標識 == 類型

泛型實參從句語法
(泛型參數(shù)從句Generic Argument Clause)< 泛型參數(shù)集 >
泛型參數(shù)集泛型參數(shù) | 泛型參數(shù) , 泛型參數(shù)集
泛型參數(shù)類型

聲明 (Declarations)

聲明語法
聲明導入聲明
聲明常量聲明
聲明變量聲明
聲明類型別名聲明
聲明函數(shù)聲明
聲明枚舉聲明
聲明結(jié)構(gòu)體聲明
聲明類聲明
聲明協(xié)議聲明
聲明構(gòu)造器聲明
聲明析構(gòu)器聲明
聲明擴展聲明
聲明下標聲明
聲明運算符聲明
聲明(Declarations)集聲明 聲明(Declarations)集 可選

頂級(Top Level) 聲明語法
頂級聲明多條語句(Statements) 可選

代碼塊語法
代碼塊{ 多條語句(Statements) 可選 }

導入(Import)聲明語法
導入聲明屬性(Attributes)集 可選 import 導入類型 可選 導入路徑
導入類型typealias | struct | class | enum | protocol | var | func
導入路徑導入路徑標識符 | 導入路徑標識符 . 導入路徑
導入路徑標識符標識符 | 運算符

常數(shù)聲明語法
常量聲明屬性(Attributes)集 可選 聲明修改符(Modifiers)集 可選 let 模式構(gòu)造器集
模式構(gòu)造器集模式構(gòu)造器 | 模式構(gòu)造器 , 模式構(gòu)造器集
模式構(gòu)造器模式 構(gòu)造器 可選
構(gòu)造器= 表達式

變量聲明語法
變量聲明變量聲明頭(Head) 模式構(gòu)造器集
變量聲明變量聲明頭(Head) 變量名 類型注解 代碼塊
變量聲明變量聲明頭(Head) 變量名 類型注解 getter-setter塊
變量聲明變量聲明頭(Head) 變量名 類型注解 getter-setter關(guān)鍵字(Keyword)塊
變量聲明變量聲明頭(Head) 變量名 類型注解 構(gòu)造器 可選 willSet-didSet代碼塊
變量聲明頭(Head)屬性(Attributes)集 可選 聲明修改符(Modifers)集 可選 var
變量名稱標識符
getter-setter塊{ getter從句 setter從句 可選 }
getter-setter塊{ setter從句 getter從句 }
getter從句屬性(Attributes)集 可選 get 代碼塊
setter從句屬性(Attributes)集 可選 set setter名稱 可選 代碼塊
setter名稱( 標識符 )
getter-setter關(guān)鍵字(Keyword)塊{ getter關(guān)鍵字(Keyword)從句 setter關(guān)鍵字(Keyword)從句 可選 }
getter-setter關(guān)鍵字(Keyword)塊{ setter關(guān)鍵字(Keyword)從句 getter關(guān)鍵字(Keyword)從句 }
getter關(guān)鍵字(Keyword)從句屬性(Attributes)集 可選 get
setter關(guān)鍵字(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 類型別名名稱
類型別名名稱標識符
類型別名賦值= 類型

函數(shù)聲明語法
函數(shù)聲明函數(shù)頭 函數(shù)名 泛型參數(shù)從句 可選 函數(shù)簽名(Signature) 函數(shù)體
函數(shù)頭屬性(Attributes)集 可選 聲明描述符(Specifiers)集 可選 func
函數(shù)名標識符 | 運算符
函數(shù)簽名(Signature)parameter-clauses throws 可選 函數(shù)結(jié)果 可選

函數(shù)簽名(Signature)parameter-clauses rethrows 函數(shù)結(jié)果 可選
函數(shù)結(jié)果-> 屬性(Attributes)集 可選 類型
函數(shù)體代碼塊
參數(shù)從句參數(shù)從句 parameter-clauses 可選
參數(shù)從句( ) | ( 參數(shù)集 ... 可選 )
參數(shù)集參數(shù) | 參數(shù) , 參數(shù)集
參數(shù)inout 可選 let 可選 外部參數(shù)名 可選 本地參數(shù)名 可選 類型注解 默認參數(shù)從句 可選
參數(shù)inout 可選 var 外部參數(shù)名 本地參數(shù)名 可選 類型注解 默認參數(shù)從句 可選
參數(shù)屬性(Attributes)集 可選 類型
外部參數(shù)名標識符 | _
本地參數(shù)名標識符 | _
默認參數(shù)從句= 表達式

枚舉聲明語法
枚舉聲明屬性(Attributes)集 可選 訪問級別修改器(access-level-modifier) 可選 聯(lián)合式枚舉

枚舉聲明屬性(Attributes)集 可選 訪問級別修改器(access-level-modifier) 可選 原始值式枚舉(raw-value-style-enum)

聯(lián)合式枚舉enum 枚舉名 泛型參數(shù)從句 可選 類型繼承從句(type-inheritance-clause) 可選 { 聯(lián)合樣式枚舉成員 可選 }

聯(lián)合樣式枚舉成員union-style-enum-member 聯(lián)合樣式枚舉成員 可選

聯(lián)合樣式枚舉成員聲明 | 聯(lián)合式(Union Style)的枚舉case從句

聯(lián)合式(Union Style)的枚舉case從句屬性(Attributes)集 可選 case 聯(lián)合式(Union Style)的枚舉case集
聯(lián)合式(Union Style)的枚舉case集聯(lián)合式(Union Style)的case | 聯(lián)合式(Union Style)的case , 聯(lián)合式(Union Style)的枚舉case集
聯(lián)合式(Union Style)的枚舉case枚舉的case名 元組類型 可選
枚舉名標識符
枚舉的case名標識符
原始值式枚舉enum 枚舉名 泛型參數(shù)從句 可選 : 類型標識 { 原始值式枚舉成員集 可選 }
原始值式枚舉成員集原始值式枚舉成員 原始值式枚舉成員集 可選
原始值式枚舉成員聲明 | 原始值式枚舉case從句
原始值式枚舉case從句屬性(Attributes)集 可選 case 原始值式枚舉case集
原始值式枚舉case集原始值式枚舉case | 原始值式枚舉case , 原始值式枚舉case集
原始值式枚舉case枚舉的case名 原始值賦值 可選
原始值賦值= 字面量 原始值字面量(raw-value-literal)數(shù)值字面量 | 字符串字面量 | 布爾字面量

結(jié)構(gòu)體聲明語法
結(jié)構(gòu)體聲明屬性(Attributes)集 可選 訪問級別修改器(access-level-modifier) 可選 struct 結(jié)構(gòu)體名稱 泛型參數(shù)從句 可選 類型繼承從句 可選 結(jié)構(gòu)體主體
結(jié)構(gòu)體名稱標識符
結(jié)構(gòu)體主體{ 聲明(Declarations)集 可選 }

類聲明語法
類聲明屬性(Attributes)集 可選 訪問級別修改器(access-level-modifier) class 類名 泛型參數(shù)從句 可選 類型繼承從句 可選 類主體
類名標識符
類主體{ 聲明(Declarations)集 可選 }

協(xié)議(Protocol)聲明語法
協(xié)議聲明屬性(Attributes)集 可選訪問級別修改器(access-level-modifier) protocol 協(xié)議名 類型繼承從句 可選 協(xié)議主體
協(xié)議名標識符
協(xié)議主體{ 協(xié)議成員聲明(Declarations)集 可選 }
協(xié)議成員聲明協(xié)議屬性聲明
協(xié)議成員聲明協(xié)議方法聲明
協(xié)議成員聲明協(xié)議構(gòu)造器聲明
協(xié)議成員聲明協(xié)議下標聲明
協(xié)議成員聲明協(xié)議關(guān)聯(lián)類型聲明
協(xié)議成員聲明(Declarations)集協(xié)議成員聲明 協(xié)議成員聲明(Declarations)集 可選

協(xié)議屬性聲明語法
協(xié)議屬性聲明變量聲明頭(Head) 變量名 類型注解 getter-setter關(guān)鍵字(Keyword)塊

協(xié)議方法聲明語法
協(xié)議方法聲明函數(shù)頭 函數(shù)名 泛型參數(shù)從句 可選 函數(shù)簽名(Signature)

協(xié)議構(gòu)造器聲明語法
協(xié)議構(gòu)造器聲明構(gòu)造器頭(Head) 泛型參數(shù)從句 可選 參數(shù)從句

協(xié)議下標聲明語法
協(xié)議下標聲明下標頭(Head) 下標結(jié)果(Result) getter-setter關(guān)鍵字(Keyword)塊

協(xié)議關(guān)聯(lián)類型聲明語法
協(xié)議關(guān)聯(lián)類型聲明類型別名頭(Head) 類型繼承從句 可選 類型別名賦值 可選

構(gòu)造器聲明語法
構(gòu)造器聲明構(gòu)造器頭(Head) 泛型參數(shù)從句 可選 參數(shù)從句 構(gòu)造器主體
構(gòu)造器頭(Head)屬性(Attributes)集 可選 聲明修改器集(declaration-modifiers) 可選 init
構(gòu)造器頭(Head)屬性(Attributes)集 可選 聲明修改器集(declaration-modifiers) 可選 init ?

構(gòu)造器頭(Head)屬性(Attributes)集 可選 聲明修改器集(declaration-modifiers) 可選 init !

構(gòu)造器主體代碼塊

析構(gòu)器聲明語法
析構(gòu)器聲明屬性(Attributes)集 可選 deinit 代碼塊

擴展(Extension)聲明語法
擴展聲明訪問級別修改器 可選 extension 類型標識 類型繼承從句 可選 extension-body
extension-body{ 聲明(Declarations)集 可選 }

下標聲明語法
下標聲明下標頭(Head) 下標結(jié)果(Result) 代碼塊
下標聲明下標頭(Head) 下標結(jié)果(Result) getter-setter塊
下標聲明下標頭(Head) 下標結(jié)果(Result) getter-setter關(guān)鍵字(Keyword)塊
下標頭(Head)屬性(Attributes)集 可選 聲明修改器(declaration-modifiers) 可選 subscript 參數(shù)從句
下標結(jié)果(Result)-> 屬性(Attributes)集 可選 類型

運算符聲明語法
運算符聲明前置運算符聲明 | 后置運算符聲明 | 中置運算符聲明
前置運算符聲明prefix 運算符 運算符 { }
后置運算符聲明postfix 運算符 運算符 { }
中置運算符聲明infix 運算符 運算符 { 中置運算符屬性集 可選 }
中置運算符屬性集優(yōu)先級從句 可選 結(jié)和性從句 可選
優(yōu)先級從句precedence 優(yōu)先級水平
優(yōu)先級水平 → 數(shù)值 0 到 255,首末項包括在內(nèi) 結(jié)和性從句associativity 結(jié)和性
結(jié)和性left | right | none

聲明修改器語法

聲明修改器 | 便捷(convenience) | 動態(tài)(dynamic) | final | 中置(infix) | lazy | 可變(mutating) | 不可變(nonmutating) | 可選(optional) | 改寫(override) | 后置 | 前置 | required | static | unowned | unowned(safe) | unowned(unsafe) | 弱(weak)

聲明修改器訪問級別聲明器(access-level-modifier)

聲明修改集聲明修改器 聲明修改器集 可選

訪問級別修改器內(nèi)部的 | 內(nèi)部的(set)

訪問級別修改器私有的 | 私有的(set)

訪問級別修改器公共的 | 公共的(set)

訪問級別修改器集訪問級別修改器 訪問級別修改器集 可選

模式

模式(Patterns) 語法
模式通配符模式 類型注解 可選
模式標識符模式 類型注解 可選
模式值綁定模式
模式元組模式 類型注解 可選

模式枚舉個例模式
模式可選模式 模式類型轉(zhuǎn)換模式
模式表達式模式

通配符模式語法
通配符模式_

標識符模式語法
標識符模式標識符

值綁定(Value Binding)模式語法
值綁定模式var 模式 | let 模式

元組模式語法
元組模式( 元組模式元素集 可選 )
元組模式元素集元組模式元素 | 元組模式元素 , 元組模式元素集
元組模式元素模式

枚舉用例模式語法
enum-case-pattern類型標識 可選 . 枚舉的case名 元組模式 可選

可選模式語法 可選模式識別符模式 ?

類型轉(zhuǎn)換模式語法
類型轉(zhuǎn)換模式(type-casting-pattern)is模式 | as模式
is模式is 類型
as模式模式 as 類型

表達式模式語法
表達式模式表達式

屬性

屬性語法
屬性@ 屬性名 屬性參數(shù)從句 可選
屬性名標識符
屬性參數(shù)從句( 平衡令牌集 可選 )
屬性(Attributes)集屬性 屬性(Attributes)集 可選
平衡令牌集平衡令牌 平衡令牌集 可選
平衡令牌( 平衡令牌集 可選 )
平衡令牌[ 平衡令牌集 可選 ]
平衡令牌{ 平衡令牌集 可選 }
平衡令牌任意標識符, 關(guān)鍵字, 字面量或運算符
平衡令牌任意標點除了(, ), [, ], {, 或 }

表達式

表達式語法
表達式try-operator 可選 前置表達式 二元表達式集 可選
表達式集表達式 | 表達式 , 表達式集

前置表達式語法
前置表達式前置運算符 可選 后置表達式
前置表達式寫入寫出(in-out)表達式
寫入寫出(in-out)表達式& 標識符

try表達式語法 try-operatortry | try !

二元表達式語法
二元表達式二元運算符 前置表達式
二元表達式賦值運算符 try運算符 可選 前置表達式
二元表達式條件運算符 try運算符 可選 前置表達式
二元表達式類型轉(zhuǎn)換運算符
二元表達式集二元表達式 二元表達式集 可選

賦值運算符語法
賦值運算符=

三元條件運算符語法
三元條件運算符? 表達式 :

類型轉(zhuǎn)換運算符語法
類型轉(zhuǎn)換運算符is 類型

類型轉(zhuǎn)換運算符as 類型

類型轉(zhuǎn)換運算符as ? 類型

類型轉(zhuǎn)換運算符as ! 類型

主表達式語法
主表達式標識符 泛型參數(shù)從句 可選
主表達式字面量表達式
主表達式self表達式
主表達式超類表達式
主表達式閉包表達式
主表達式圓括號表達式
主表達式隱式成員表達式
主表達式通配符表達式

字面量表達式語法
字面量表達式字面量
字面量表達式數(shù)組字面量 | 字典字面量
字面量表達式__FILE__ | __LINE__ | __COLUMN__ | __FUNCTION__
數(shù)組字面量[ 數(shù)組字面量項集 可選 ]
數(shù)組字面量項集數(shù)組字面量項 , 可選 | 數(shù)組字面量項 , 數(shù)組字面量項集
數(shù)組字面量項表達式
字典字面量[ 字典字面量項集 ] | [ : ]
字典字面量項集字典字面量項 , 可選 | 字典字面量項 , 字典字面量項集
字典字面量項表達式 : 表達式

Self 表達式語法
self表達式self
self表達式self . 標識符
self表達式self [ 表達式 ]
self表達式self . init

超類表達式語法
超類表達式超類方法表達式 | 超類下標表達式 | 超類構(gòu)造器表達式
超類方法表達式super . 標識符
超類下標表達式super [ 表達式 ]
超類構(gòu)造器表達式super . init

閉包表達式語法
閉包表達式{ 閉包簽名(Signational) 可選 多條語句(Statements) }
閉包簽名(Signational)參數(shù)從句 函數(shù)結(jié)果 可選 in
閉包簽名(Signational)標識符集 函數(shù)結(jié)果 可選 in
閉包簽名(Signational)捕獲(Capature)集 參數(shù)從句 函數(shù)結(jié)果 可選 in
閉包簽名(Signational)捕獲(Capature)集 標識符集 函數(shù)結(jié)果 可選 in
閉包簽名(Signational)捕獲(Capature)集 in
捕獲(Capature)集[ 捕獲(Capature)說明符 表達式 ]
捕獲(Capature)說明符weak | unowned | unowned(safe) | unowned(unsafe)

隱式成員表達式語法
隱式成員表達式. 標識符

圓括號表達式(Parenthesized Expression)語法
圓括號表達式( 表達式元素集 可選 )
表達式元素集表達式元素 | 表達式元素 , 表達式元素集
表達式元素表達式 | 標識符 : 表達式

通配符表達式語法
通配符表達式_

后置表達式語法
后置表達式主表達式
后置表達式后置表達式 后置運算符
后置表達式函數(shù)調(diào)用表達式
后置表達式構(gòu)造器表達式
后置表達式顯示成員表達式
后置表達式后置self表達式
后置表達式動態(tài)類型表達式
后置表達式下標表達式
后置表達式強制取值(Forced Value)表達式
后置表達式可選鏈(Optional Chaining)表達式

函數(shù)調(diào)用表達式語法
函數(shù)調(diào)用表達式后置表達式 圓括號表達式
函數(shù)調(diào)用表達式后置表達式 圓括號表達式 可選 后置閉包(Trailing Closure)
后置閉包(Trailing Closure)閉包表達式

構(gòu)造器表達式語法
構(gòu)造器表達式后置表達式 . init

顯式成員表達式語法
顯示成員表達式后置表達式 . 十進制數(shù)字
顯示成員表達式后置表達式 . 標識符 泛型參數(shù)從句 可選

后置Self 表達式語法
后置self表達式后置表達式 . self

動態(tài)類型表達式語法
動態(tài)類型表達式后置表達式 . dynamicType

附屬腳本表達式語法
附屬腳本表達式后置表達式 [ 表達式集 ]

強制取值(Forced Value)語法
強制取值(Forced Value)表達式后置表達式 !

可選鏈表達式語法
可選鏈表達式后置表達式 ?

詞法結(jié)構(gòu)

標識符語法
標識符標識符頭(Head) 標識符字符集 可選
標識符標識符頭(Head) 標識符字符集 可選
標識符隱式參數(shù)名
標識符集標識符 | 標識符 , 標識符集
標識符頭(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
標識符字符 → 數(shù)值 0 到 9
標識符字符 → U+0300–U+036F, U+1DC0–U+1DFF, U+20D0–U+20FF, or U+FE20–U+FE2F
標識符字符標識符頭(Head)
標識符字符集標識符字符 標識符字符集 可選
隱式參數(shù)名$ 十進制數(shù)字集

字面量語法
字面量數(shù)值型字面量 | 字符串字面量 | 布爾字面量 | 空字面量

數(shù)值型字面量- 可選 整形字面量 | - 可選 浮點型字面量

布爾字面量true | false

空字面量nil

整型字面量語法
整型字面量二進制字面量
整型字面量八進制字面量
整型字面量十進制字面量
整型字面量十六進制字面量
二進制字面量0b 二進制數(shù)字 二進制字面量字符集 可選
二進制數(shù)字 → 數(shù)值 0 到 1
二進制字面量字符二進制數(shù)字 | _
二進制字面量字符集二進制字面量字符 二進制字面量字符集 可選
八進制字面量0o 八進制數(shù)字 八進制字符集 可選
八進字數(shù)字 → 數(shù)值 0 到 7
八進制字符八進制數(shù)字 | _
八進制字符集八進制字符 八進制字符集 可選
十進制字面量十進制數(shù)字 十進制字符集 可選
十進制數(shù)字 → 數(shù)值 0 到 9
十進制數(shù)字集十進制數(shù)字 十進制數(shù)字集 可選
十進制字面量字符十進制數(shù)字 | _
十進制字面量字符集十進制字面量字符 十進制字面量字符集 可選
十六進制字面量0x 十六進制數(shù)字 十六進制字面量字符集 可選
十六進制數(shù)字 → 數(shù)值 0 到 9, a through f, or A through F
十六進制字符十六進制數(shù)字 | _
十六進制字面量字符集十六進制字符 十六進制字面量字符集 可選

浮點型字面量語法
浮點數(shù)字面量十進制字面量 十進制分數(shù) 可選 十進制指數(shù) 可選
浮點數(shù)字面量十六進制字面量 十六進制分數(shù) 可選 十六進制指數(shù)
十進制分數(shù). 十進制字面量
十進制指數(shù)浮點數(shù)e 正負號 可選 十進制字面量
十六進制分數(shù). 十六進制數(shù)
十六進制字面量字符集可選
十六進制指數(shù)浮點數(shù)p 正負號 可選 十六進制字面量
浮點數(shù)ee | E
浮點數(shù)pp | P
正負號+ | -

字符串型字面量語法
字符串字面量" 引用文本 "
引用文本引用文本條目 引用文本 可選
引用文本條目轉(zhuǎn)義字符
引用文本條目( 表達式 )
引用文本條目 → 除了"-, \-, U+000A, or U+000D的所有Unicode的字符
轉(zhuǎn)義字符/0 | \ | \t | \n | \r | \" | \'
轉(zhuǎn)義字符\u { 十六進制標量數(shù)字集 }
unicode標量數(shù)字集 → 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

運算符字符集運算符字符 運算符字符集可選

點運算符頭..

點運算符字符. | 運算符字符

點運算符字符集點運算符字符 點運算符字符集 可選

二元運算符運算符
前置運算符運算符
后置運算符運算符

類型

類型語法
類型數(shù)組類型 | 字典類型 | 函數(shù)類型 | 類型標識符 | 元組類型 | 可選類型 | 隱式解析可選類型 | 協(xié)議合成類型 | 元型類型

類型注解語法
類型注解: 屬性(Attributes)集 可選 類型

類型標識語法
類型標識類型名稱 泛型參數(shù)從句 可選 | 類型名稱 泛型參數(shù)從句 可選 . 類型標識符
類型名標識符

元組類型語法
元組類型( 元組類型主體 可選 )
元組類型主體元組類型的元素集 ... 可選
元組類型的元素集元組類型的元素 | 元組類型的元素 , 元組類型的元素集
元組類型的元素屬性(Attributes)集 可選 inout 可選 類型 | inout 可選 元素名 類型注解
元素名標識符

函數(shù)類型語法
函數(shù)類型類型 throws 可選 -> 類型
函數(shù)類型類型 rethrows -> 類型

數(shù)組類型語法
數(shù)組類型[ 類型 ]

字典類型語法 字典類型[ 類型 : 類型 ]

可選類型語法
可選類型類型 ?

隱式解析可選類型(Implicitly Unwrapped Optional Type)語法
隱式解析可選類型類型 !

協(xié)議合成類型語法
協(xié)議合成類型protocol < 協(xié)議標識符集 可選 >
協(xié)議標識符集協(xié)議標識符 | 協(xié)議標識符 , 協(xié)議標識符集
協(xié)議標識符類型標識符

元(Metatype)類型語法
元類型類型 . Type | 類型 . Protocol

類型繼承從句語法

類型繼承從句: 類條件(class-requirement)) , 類型繼承集

類型繼承從句: 類條件(class-requirement))

類型繼承從句: 類型繼承集

類型繼承集類型標識符 | 類型標識符 , 類型繼承集

類條件class

? 泛型參數(shù) Access Control 權(quán)限控制的黑與白 ?
?