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á)式集
條件從句 → 可用條件 (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-statement → repeat 代碼塊 while 表達(dá)式
分支語句語法
分支語句 → if語句分支語句 → guard語句
分支語句 → switch語句
If語句語法
if語句 → if 條件從句 代碼塊 else從句(Clause) 可選
Switch語句語法
switch語句 → switch 表達(dá)式 { SwitchCase 可選 }
SwitchCase集 → SwitchCase SwitchCase集 可選
SwitchCase → case標(biāo)簽 多條語句(Statements) | default標(biāo)簽 多條語句(Statements)
SwitchCase → case標(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-clauses → catch-clause catch-clauses 可選
catch-clauses → catch 模式(pattern) 可選 where-clause 可選 代碼塊(code-block) 可選
泛型形參從句(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ù) → 類型
聲明語法
聲明 → 導(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)識符
元組模式語法
元組模式 → ( 元組模式元素集 可選 )
元組模式元素集 → 元組模式元素 | 元組模式元素 , 元組模式元素集
元組模式元素 → 模式
枚舉用例模式語法
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á)式 → 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-operator → try | 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
強(qiáng)制取值(Forced Value)語法
強(qiáng)制取值(Forced Value)表達(dá)式 → 后置表達(dá)式 !
可選鏈表達(dá)式語法
可選鏈表達(dá)式 → 后置表達(dá)式 ?
標(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ù)e → e | E
浮點(diǎn)數(shù)p → p | 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)識符
類型繼承從句語法
類型繼承從句 → : 類條件(class-requirement)) , 類型繼承集
類型繼承從句 → : 類條件(class-requirement))
類型繼承從句 → : 類型繼承集
類型繼承集 → 類型標(biāo)識符 | 類型標(biāo)識符 , 類型繼承集
類條件 → class