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

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


1.0 翻譯:stanzhai 校對:xielingwang

2.0 翻譯+校對:miaosiqi

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

語句

語句語法
語句表達(dá)式 ; 可選
語句聲明 ; 可選
語句循環(huán)語句 ; 可選
語句分支語句 ; 可選
語句標(biāo)記語句(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初始條件 可選 ; 表達(dá)式 可選 ; 表達(dá)式 可選 代碼塊
for語句for ( for初始條件 可選 ; 表達(dá)式 可選 ; 表達(dá)式 可選 ) 代碼塊
for初始條件變量聲明 | 表達(dá)式集

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

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

條件從句表達(dá)式 , 表達(dá)式集

條件從句表達(dá)式集

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

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

條件可用條件(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 表達(dá)式

分支語句語法
分支語句if語句

分支語句guard語句

分支語句switch語句

If語句語法
if語句if 條件從句 代碼塊 else從句(Clause) 可選

else從句(Clause)else 代碼塊 | else if語句

Guard 語句語法 guard語句guard 條件從句 else 代碼塊

Switch語句語法
switch語句switch 表達(dá)式 { SwitchCase 可選 }
SwitchCase集SwitchCase SwitchCase集 可選
SwitchCasecase標(biāo)簽 多條語句(Statements) | default標(biāo)簽 多條語句(Statements)
SwitchCasecase標(biāo)簽 ; | default標(biāo)簽 ;
case標(biāo)簽case case項(xiàng)集 :
case項(xiàng)集模式 where-clause 可選 | 模式 where-clause 可選 , case項(xiàng)集
default標(biāo)簽default :
where從句where where表達(dá)式
where表達(dá)式表達(dá)式

標(biāo)記語句語法
標(biāo)記語句(Labeled Statement)語句標(biāo)簽 循環(huán)語句 | 語句標(biāo)簽 if語句 | 語句標(biāo)簽 switch語句 語句標(biāo)簽標(biāo)簽名稱 :
標(biāo)簽名稱標(biāo)識符

控制傳遞語句(Control Transfer Statement) 語法
控制傳遞語句break語句
控制傳遞語句continue語句
控制傳遞語句fallthrough語句
控制傳遞語句return語句 控制傳遞語句throw語句

Break 語句語法
break語句break 標(biāo)簽名稱 可選

Continue 語句語法
continue語句continue 標(biāo)簽名稱 可選

Fallthrough 語句語法
fallthrough語句fallthrough

Return 語句語法
return語句return 表達(dá)式 可選

可用條件(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

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

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

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

拋出語句(Throw Statement)語法

拋出語句(throw-statement)throw 表達(dá)式(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ù)類型名稱 : 類型標(biāo)識
泛形參數(shù)類型名稱 : 協(xié)議合成類型
約束從句where 約束集
約束集約束 | 約束 , 約束集
約束一致性約束 | 同類型約束
一致性約束類型標(biāo)識 : 類型標(biāo)識
一致性約束類型標(biāo)識 : 協(xié)議合成類型
同類型約束類型標(biāo)識 == 類型

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

聲明 (Declarations)

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

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

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

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

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

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

函數(shù)聲明語法
函數(shù)聲明函數(shù)頭 函數(shù)名 泛型參數(shù)從句 可選 函數(shù)簽名(Signature) 函數(shù)體
函數(shù)頭屬性(Attributes)集 可選 聲明描述符(Specifiers)集 可選 func
函數(shù)名標(biāo)識符 | 運(yùn)算符
函數(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ù)名 可選 類型注解 默認(rèn)參數(shù)從句 可選
參數(shù)inout 可選 var 外部參數(shù)名 本地參數(shù)名 可選 類型注解 默認(rèn)參數(shù)從句 可選
參數(shù)屬性(Attributes)集 可選 類型
外部參數(shù)名標(biāo)識符 | _
本地參數(shù)名標(biāo)識符 | _
默認(rèn)參數(shù)從句= 表達(dá)式

枚舉聲明語法
枚舉聲明屬性(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名 元組類型 可選
枚舉名標(biāo)識符
枚舉的case名標(biāo)識符
原始值式枚舉enum 枚舉名 泛型參數(shù)從句 可選 : 類型標(biāo)識 { 原始值式枚舉成員集 可選 }
原始值式枚舉成員集原始值式枚舉成員 原始值式枚舉成員集 可選
原始值式枚舉成員聲明 | 原始值式枚舉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)體名稱標(biāo)識符
結(jié)構(gòu)體主體{ 聲明(Declarations)集 可選 }

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

協(xié)議(Protocol)聲明語法
協(xié)議聲明屬性(Attributes)集 可選訪問級別修改器(access-level-modifier) protocol 協(xié)議名 類型繼承從句 可選 協(xié)議主體
協(xié)議名標(biāo)識符
協(xié)議主體{ 協(xié)議成員聲明(Declarations)集 可選 }
協(xié)議成員聲明協(xié)議屬性聲明
協(xié)議成員聲明協(xié)議方法聲明
協(xié)議成員聲明協(xié)議構(gòu)造器聲明
協(xié)議成員聲明協(xié)議下標(biāo)聲明
協(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é)議下標(biāo)聲明語法
協(xié)議下標(biāo)聲明下標(biāo)頭(Head) 下標(biāo)結(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 代碼塊

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

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

運(yùn)算符聲明語法
運(yùn)算符聲明前置運(yùn)算符聲明 | 后置運(yùn)算符聲明 | 中置運(yùn)算符聲明
前置運(yùn)算符聲明prefix 運(yùn)算符 運(yùn)算符 { }
后置運(yùn)算符聲明postfix 運(yùn)算符 運(yùn)算符 { }
中置運(yùn)算符聲明infix 運(yùn)算符 運(yùn)算符 { 中置運(yùn)算符屬性集 可選 }
中置運(yùn)算符屬性集優(yōu)先級從句 可選 結(jié)和性從句 可選
優(yōu)先級從句precedence 優(yōu)先級水平
優(yōu)先級水平 → 數(shù)值 0 到 255,首末項(xiàng)包括在內(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) 語法
模式通配符模式 類型注解 可選
模式標(biāo)識符模式 類型注解 可選
模式值綁定模式
模式元組模式 類型注解 可選

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

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

標(biāo)識符模式語法
標(biāo)識符模式標(biāo)識符

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

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

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

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

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

表達(dá)式模式語法
表達(dá)式模式表達(dá)式

屬性

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

表達(dá)式

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

前置表達(dá)式語法
前置表達(dá)式前置運(yùn)算符 可選 后置表達(dá)式
前置表達(dá)式寫入寫出(in-out)表達(dá)式
寫入寫出(in-out)表達(dá)式& 標(biāo)識符

try表達(dá)式語法 try-operatortry | try !

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

賦值運(yùn)算符語法
賦值運(yùn)算符=

三元條件運(yùn)算符語法
三元條件運(yùn)算符? 表達(dá)式 :

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

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

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

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

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

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

Self 表達(dá)式語法
self表達(dá)式self
self表達(dá)式self . 標(biāo)識符
self表達(dá)式self [ 表達(dá)式 ]
self表達(dá)式self . init

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

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

隱式成員表達(dá)式語法
隱式成員表達(dá)式. 標(biāo)識符

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

通配符表達(dá)式語法
通配符表達(dá)式_

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

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

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

顯式成員表達(dá)式語法
顯示成員表達(dá)式后置表達(dá)式 . 十進(jìn)制數(shù)字
顯示成員表達(dá)式后置表達(dá)式 . 標(biāo)識符 泛型參數(shù)從句 可選

后置Self 表達(dá)式語法
后置self表達(dá)式后置表達(dá)式 . self

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

附屬腳本表達(dá)式語法
附屬腳本表達(dá)式后置表達(dá)式 [ 表達(dá)式集 ]

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

可選鏈表達(dá)式語法
可選鏈表達(dá)式后置表達(dá)式 ?

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

標(biāo)識符語法
標(biāo)識符標(biāo)識符頭(Head) 標(biāo)識符字符集 可選
標(biāo)識符標(biāo)識符頭(Head) 標(biāo)識符字符集 可選
標(biāo)識符隱式參數(shù)名
標(biāo)識符集標(biāo)識符 | 標(biāo)識符 , 標(biāo)識符集
標(biāo)識符頭(Head) → Upper- or lowercase letter A through Z

標(biāo)識符頭(Head) → _

標(biāo)識符頭(Head) → U+00A8, U+00AA, U+00AD, U+00AF, U+00B2–U+00B5, or U+00B7–U+00BA
標(biāo)識符頭(Head) → U+00BC–U+00BE, U+00C0–U+00D6, U+00D8–U+00F6, or U+00F8–U+00FF
標(biāo)識符頭(Head) → U+0100–U+02FF, U+0370–U+167F, U+1681–U+180D, or U+180F–U+1DBF
標(biāo)識符頭(Head) → U+1E00–U+1FFF
標(biāo)識符頭(Head) → U+200B–U+200D, U+202A–U+202E, U+203F–U+2040, U+2054, or U+2060–U+206F
標(biāo)識符頭(Head) → U+2070–U+20CF, U+2100–U+218F, U+2460–U+24FF, or U+2776–U+2793
標(biāo)識符頭(Head) → U+2C00–U+2DFF or U+2E80–U+2FFF
標(biāo)識符頭(Head) → U+3004–U+3007, U+3021–U+302F, U+3031–U+303F, or U+3040–U+D7FF
標(biāo)識符頭(Head) → U+F900–U+FD3D, U+FD40–U+FDCF, U+FDF0–U+FE1F, or U+FE30–U+FE44
標(biāo)識符頭(Head) → U+FE47–U+FFFD
標(biāo)識符頭(Head) → U+10000–U+1FFFD, U+20000–U+2FFFD, U+30000–U+3FFFD, or U+40000–U+4FFFD
標(biāo)識符頭(Head) → U+50000–U+5FFFD, U+60000–U+6FFFD, U+70000–U+7FFFD, or U+80000–U+8FFFD
標(biāo)識符頭(Head) → U+90000–U+9FFFD, U+A0000–U+AFFFD, U+B0000–U+BFFFD, or U+C0000–U+CFFFD
標(biāo)識符頭(Head) → U+D0000–U+DFFFD or U+E0000–U+EFFFD
標(biāo)識符字符 → 數(shù)值 0 到 9
標(biāo)識符字符 → U+0300–U+036F, U+1DC0–U+1DFF, U+20D0–U+20FF, or U+FE20–U+FE2F
標(biāo)識符字符標(biāo)識符頭(Head)
標(biāo)識符字符集標(biāo)識符字符 標(biāo)識符字符集 可選
隱式參數(shù)名$ 十進(jìn)制數(shù)字集

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

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

布爾字面量true | false

空字面量nil

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

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

字符串型字面量語法
字符串字面量" 引用文本 "
引用文本引用文本條目 引用文本 可選
引用文本條目轉(zhuǎn)義字符
引用文本條目( 表達(dá)式 )
引用文本條目 → 除了"-, \-, U+000A, or U+000D的所有Unicode的字符
轉(zhuǎn)義字符/0 | \ | \t | \n | \r | \" | \'
轉(zhuǎn)義字符\u { 十六進(jìn)制標(biāo)量數(shù)字集 }
unicode標(biāo)量數(shù)字集 → Between one and eight hexadecimal digits

運(yùn)算符語法語法
運(yùn)算符運(yùn)算符頭 運(yùn)算符字符集 可選 運(yùn)算符點(diǎn)運(yùn)算符頭 點(diǎn)運(yùn)算符字符集 可選
運(yùn)算符字符/ | = | - | + | ! | * | % | < | > | & | | | ^ | ~ | ?
運(yùn)算符頭 → U+00A1–U+00A7

運(yùn)算符頭 → U+00A9 or U+00AB

運(yùn)算符頭 → U+00AC or U+00AE

運(yùn)算符頭 → U+00B0–U+00B1, U+00B6, U+00BB, U+00BF, U+00D7, or U+00F7

運(yùn)算符頭 → U+2016–U+2017 or U+2020–U+2027

運(yùn)算符頭 → U+2030–U+203E

運(yùn)算符頭 → U+2041–U+2053

運(yùn)算符頭 → U+2055–U+205E

運(yùn)算符頭 → U+2190–U+23FF

運(yùn)算符頭 → U+2500–U+2775

運(yùn)算符頭 → U+2794–U+2BFF

運(yùn)算符頭 → U+2E00–U+2E7F

運(yùn)算符頭 → U+3001–U+3003

運(yùn)算符頭 → U+3008–U+3030

運(yùn)算符字符運(yùn)算符頭

運(yùn)算符字符 → U+0300–U+036F

運(yùn)算符字符 → U+1DC0–U+1DFF

運(yùn)算符字符 → U+20D0–U+20FF

運(yùn)算符字符 → U+FE00–U+FE0F

運(yùn)算符字符 → U+FE20–U+FE2F

運(yùn)算符字符 → U+E0100–U+E01EF

運(yùn)算符字符集運(yùn)算符字符 運(yùn)算符字符集可選

點(diǎn)運(yùn)算符頭..

點(diǎn)運(yùn)算符字符. | 運(yùn)算符字符

點(diǎn)運(yùn)算符字符集點(diǎn)運(yùn)算符字符 點(diǎn)運(yùn)算符字符集 可選

二元運(yùn)算符運(yùn)算符
前置運(yùn)算符運(yùn)算符
后置運(yùn)算符運(yùn)算符

類型

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

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

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

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

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

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

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

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

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

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

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

類型繼承從句語法

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

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

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

類型繼承集類型標(biāo)識符 | 類型標(biāo)識符 , 類型繼承集

類條件class

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