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-statement → repeat 代碼塊 while 表達式
分支語句語法
分支語句 → if語句分支語句 → guard語句
分支語句 → switch語句
If語句語法
if語句 → if 條件從句 代碼塊 else從句(Clause) 可選
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) → 語句標簽 循環(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-clauses → catch-clause catch-clauses 可選
catch-clauses → catch 模式(pattern) 可選 where-clause 可選 代碼塊(code-block) 可選
泛型形參從句(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ù) → 類型
聲明語法
聲明 → 導入聲明
聲明 → 常量聲明
聲明 → 變量聲明
聲明 → 類型別名聲明
聲明 → 函數(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)換模式
模式 → 表達式模式
通配符模式語法
通配符模式 → _
標識符模式語法
標識符模式 → 標識符
元組模式語法
元組模式 → ( 元組模式元素集 可選 )
元組模式元素集 → 元組模式元素 | 元組模式元素 , 元組模式元素集
元組模式元素 → 模式
可選模式語法 可選模式 → 識別符模式 ?
類型轉(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-operator → try | 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)表達式 → 后置表達式 !
可選鏈表達式語法
可選鏈表達式 → 后置表達式 ?
標識符語法
標識符 → 標識符頭(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ù)e → e | E
浮點數(shù)p → p | 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é)議標識符 → 類型標識符
類型繼承從句語法
類型繼承從句 → : 類條件(class-requirement)) , 類型繼承集
類型繼承從句 → : 類條件(class-requirement))
類型繼承從句 → : 類型繼承集
類條件 → class