空白字符語(yǔ)法
空白字符 → 空白字符項(xiàng) 空白字符可選
空白字符項(xiàng) → 換行符
空白字符項(xiàng) → 注釋
空白字符項(xiàng) → 多行注釋
空白字符項(xiàng) → U+0000,U+0009,U+000B,U+000C 或 U+0020
換行符* → U+000A
換行符 → U+000D
換行符 → U+000D 后面是 U+000A
注釋 → // 單行內(nèi)容注釋 換行符
注釋 → /* 多行內(nèi)容注釋 */
注釋內(nèi)容 → 注釋內(nèi)容項(xiàng) 注釋內(nèi)容可選
注釋內(nèi)容項(xiàng) → 除 U+000A 或 U+000D 外的任何 Unicode 標(biāo)量值
多行注釋內(nèi)容 → 多行注釋內(nèi)容項(xiàng) 多行注釋內(nèi)容可選
多行注釋內(nèi)容項(xiàng) → 多行內(nèi)容
多行注釋內(nèi)容項(xiàng) → 注釋內(nèi)容項(xiàng)
多行注釋內(nèi)容項(xiàng) → 除 /* 或 */ 外的任何 Unicode 標(biāo)量值
標(biāo)識(shí)符語(yǔ)法
標(biāo)識(shí)符 → 標(biāo)識(shí)符頭(Head) 標(biāo)識(shí)符字符集可選
標(biāo)識(shí)符 → 標(biāo)識(shí)符頭(Head) 標(biāo)識(shí)符字符集可選
標(biāo)識(shí)符 → 隱式參數(shù)名
標(biāo)識(shí)符 → 屬性包裝器呈現(xiàn)值
標(biāo)識(shí)符集 → 標(biāo)識(shí)符 | 標(biāo)識(shí)符 , 標(biāo)識(shí)符集
標(biāo)識(shí)符頭(Head) → 大寫(xiě)或者小寫(xiě)字母 A 到 Z
標(biāo)識(shí)符頭(Head) → _
標(biāo)識(shí)符頭(Head) → U+00A8, U+00AA, U+00AD, U+00AF, U+00B2–U+00B5, or U+00B7–U+00BA
標(biāo)識(shí)符頭(Head) → U+00BC–U+00BE, U+00C0–U+00D6, U+00D8–U+00F6, or U+00F8–U+00FF
標(biāo)識(shí)符頭(Head) → U+0100–U+02FF, U+0370–U+167F, U+1681–U+180D, or U+180F–U+1DBF
標(biāo)識(shí)符頭(Head) → U+1E00–U+1FFF
標(biāo)識(shí)符頭(Head) → U+200B–U+200D, U+202A–U+202E, U+203F–U+2040, U+2054, or U+2060–U+206F
標(biāo)識(shí)符頭(Head) → U+2070–U+20CF, U+2100–U+218F, U+2460–U+24FF, or U+2776–U+2793
標(biāo)識(shí)符頭(Head) → U+2C00–U+2DFF or U+2E80–U+2FFF
標(biāo)識(shí)符頭(Head) → U+3004–U+3007, U+3021–U+302F, U+3031–U+303F, or U+3040–U+D7FF
標(biāo)識(shí)符頭(Head) → U+F900–U+FD3D, U+FD40–U+FDCF, U+FDF0–U+FE1F, or U+FE30–U+FE44
標(biāo)識(shí)符頭(Head) → U+FE47–U+FFFD
標(biāo)識(shí)符頭(Head) → U+10000–U+1FFFD, U+20000–U+2FFFD, U+30000–U+3FFFD, or U+40000–U+4FFFD
標(biāo)識(shí)符頭(Head) → U+50000–U+5FFFD, U+60000–U+6FFFD, U+70000–U+7FFFD, or U+80000–U+8FFFD
標(biāo)識(shí)符頭(Head) → U+90000–U+9FFFD, U+A0000–U+AFFFD, U+B0000–U+BFFFD, or U+C0000–U+CFFFD
標(biāo)識(shí)符頭(Head) → U+D0000–U+DFFFD or U+E0000–U+EFFFD
標(biāo)識(shí)符字符 → 數(shù)值 0 到 9
標(biāo)識(shí)符字符 → U+0300–U+036F, U+1DC0–U+1DFF, U+20D0–U+20FF, or U+FE20–U+FE2F
標(biāo)識(shí)符字符 → 標(biāo)識(shí)符頭(Head)
標(biāo)識(shí)符字符集 → 標(biāo)識(shí)符字符 標(biāo)識(shí)符字符集可選
隱式參數(shù)名 → $ 十進(jìn)制數(shù)字集
屬性包裝器呈現(xiàn)值 → $ 標(biāo)識(shí)符字符集
字面量語(yǔ)法
字面量 → 數(shù)值型字面量 | 字符串字面量 | 布爾字面量 | 空字面量
數(shù)值型字面量 → -可選整形字面量 | -可選浮點(diǎn)型字面量
布爾字面量 → true | false
空字面量 → nil
整型字面量語(yǔ)法
整型字面量 → 二進(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 到 f,或者 A 到 F
十六進(jìn)制字符 → 十六進(jìn)制數(shù)字 | -
十六進(jìn)制字面量字符集 → 十六進(jìn)制字符 十六進(jìn)制字面量字符集可選
浮點(diǎn)型字面量語(yǔ)法
浮點(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ù)號(hào)可選十進(jìn)制字面量
十六進(jìn)制分?jǐn)?shù) → . 十六進(jìn)制數(shù)
十六進(jìn)制指數(shù) → 浮點(diǎn)數(shù) p 正負(fù)號(hào)可選十六進(jìn)制字面量
浮點(diǎn)數(shù) e → e | E
浮點(diǎn)數(shù) p → p | P
正負(fù)號(hào) → + | -
字符串型字面量語(yǔ)法
字符串字面量 → 靜態(tài)字符串字面量 | 插值字符串字面量
字符串開(kāi)分隔定界符 → 字符串?dāng)U展分隔符 "
字符串閉分隔定界符 → " 字符串?dāng)U展分隔符可選
靜態(tài)字符串字面量 → 字符串開(kāi)分隔定界符 引用文本可選 字符串閉分隔定界符
靜態(tài)字符串字面量 → 多行字符串開(kāi)分隔定界符 多行引用文本可選 多行字符串閉分隔定界符
多行字符串開(kāi)分隔定界符 → 字符串?dāng)U展分隔符 """
多行字符串閉分隔定界符 → """ 字符串?dāng)U展分隔符
字符串?dāng)U展分隔符 → # 字符串?dāng)U展分隔符可選
引用文本 → 引用文本項(xiàng) 引用文本可選
引用文本項(xiàng) → 轉(zhuǎn)義字符
引用文本項(xiàng) → 除了 "、\\、U+000A、U+000D 以外的所有 Unicode 字符
多行引用文本 → 多行引用文本項(xiàng) 多行引用文本可選
多行引用文本項(xiàng) 轉(zhuǎn)義字符可選
多行引用文本 → 除了 \ 以外的任何 Unicode 標(biāo)量值
多行引用文本 → 轉(zhuǎn)義換行
插值字符串字面量 → 字符串開(kāi)分隔定界符 插值文本可選 字符串閉分隔定界符
插值字符串字面量 → 多行字符串開(kāi)分隔定界符 插值文本可選 多行字符串閉分隔定界符
插值文本 → 插值文本項(xiàng) 插值文本可選
插值文本項(xiàng) → \(表達(dá)式) | 引用文本項(xiàng)
多行插值文本 → 多行插值文本項(xiàng) 多行插值文本可選
多行插值文本項(xiàng) → \( 表達(dá)式 ) | 多行引用文本項(xiàng)
轉(zhuǎn)義序列 → \ 字符串?dāng)U展分隔符
轉(zhuǎn)義字符 → 轉(zhuǎn)義序列 0 | 轉(zhuǎn)義序列 \ | 轉(zhuǎn)義序列 t | 轉(zhuǎn)義序列 n | 轉(zhuǎn)義序列 r | 轉(zhuǎn)義序列 \" | 轉(zhuǎn)義序列 '
轉(zhuǎn)義字符 → 轉(zhuǎn)義序列 u { unicode 標(biāo)量數(shù)字 }
unicode 標(biāo)量數(shù)字 → 一到八位的十六進(jìn)制數(shù)字
轉(zhuǎn)義換行符 → 轉(zhuǎn)義序列 空白可選 換行符
運(yùn)算符語(yǔ)法語(yǔ)法
運(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)算符
類型語(yǔ)法
類型 → 數(shù)組類型
類型 → 字典類型
類型 → 函數(shù)類型
類型 → 類型標(biāo)識(shí)符
類型 → 元組類型
類型 → 可選類型
類型 → 隱式解析可選類型
類型 → 協(xié)議合成類型
類型 → Any
類型 → Self
類型 → ( type )
類型注解語(yǔ)法
類型注解 → : 屬性(Attributes)集可選類型
類型標(biāo)識(shí)語(yǔ)法
類型標(biāo)識(shí) → 類型名稱 泛型參數(shù)從句可選| 類型名稱 泛型參數(shù)從句可選. 類型標(biāo)識(shí)符
類型名 → 標(biāo)識(shí)符
元組類型語(yǔ)法
元組類型 → ( ) | ( 元組類型元素 , 元組類型元素列表 )
元組類型元素列表 → 元組類型元素 | 元組類型元素 , 元組類型元素列表
元素名 → 標(biāo)識(shí)符
函數(shù)類型語(yǔ)法
函數(shù)類型子句 → ( )
函數(shù)類型子句 → ( 函數(shù)類型參數(shù)列表 ...-可選 )
函數(shù)類型參數(shù)列表 → 函數(shù)類型參數(shù) | 函數(shù)類型參數(shù), 函數(shù)類型參數(shù)列表
函數(shù)類型參數(shù) → 特性列表可選 輸入輸出參數(shù)可選 類型 | 參數(shù)標(biāo)簽 類型注解
參數(shù)標(biāo)簽 → 標(biāo)識(shí)符
數(shù)組類型語(yǔ)法
數(shù)組類型 → [ 類型 ]
字典類型語(yǔ)法
字典類型 → [ 類型 : 類型 ]
可選類型語(yǔ)法
可選類型 → 類型 ?
隱式解析可選類型(Implicitly Unwrapped Optional Type)語(yǔ)法
隱式解析可選類型 → 類型 !
協(xié)議合成類型語(yǔ)法
協(xié)議合成類型 → 類型標(biāo)識(shí)符 | 協(xié)議合成延續(xù)
協(xié)議持續(xù)延續(xù) → 類型標(biāo)識(shí)符 | 協(xié)議合成類型
元(Metatype)類型語(yǔ)法
類型繼承從句語(yǔ)法
類型繼承從句 → : 類型繼承集
類型繼承集 → 類型標(biāo)識(shí)符 | 類型標(biāo)識(shí)符 , 類型繼承集
類條件 → class
表達(dá)式語(yǔ)法
表達(dá)式 → try 運(yùn)算符可選 前綴表達(dá)式 二元表達(dá)式列表
前綴表達(dá)式語(yǔ)法
前綴表達(dá)式 → 輸入輸出表達(dá)式
輸入輸出表達(dá)式 → & 標(biāo)識(shí)符
try 表達(dá)式語(yǔ)法
try 操作符 → try | try ? | try !
二元表達(dá)式語(yǔ)法
二元表達(dá)式 → 二元運(yùn)算符 前綴表達(dá)式
二元表達(dá)式 → 賦值操作符 try 運(yùn)算符可選 前綴表達(dá)式
二元表達(dá)式 → 條件運(yùn)算符 try 運(yùn)算符可選 前綴表達(dá)式
二元表達(dá)式 → 類型轉(zhuǎn)換運(yùn)算符
二元表達(dá)式 → 二元表達(dá)式 二元表達(dá)式列表可選
賦值操作符語(yǔ)法
賦值運(yùn)算符 → [=]
條件運(yùn)算符
條件運(yùn)算符 → [?] 表達(dá)式:
類型轉(zhuǎn)換運(yùn)算符語(yǔ)法
類型轉(zhuǎn)換運(yùn)算符 → [is] 類型
類型轉(zhuǎn)換運(yùn)算符 → [as] 類型
類型轉(zhuǎn)換運(yùn)算符 → [as ?] 類型
類型轉(zhuǎn)換運(yùn)算符 → [as !] 類型
基礎(chǔ)表達(dá)式語(yǔ)法
基礎(chǔ)表達(dá)式 → 標(biāo)識(shí)符 泛型實(shí)參子句可選
基礎(chǔ)表達(dá)式 → 字面量表達(dá)式
基礎(chǔ)表達(dá)式 → self 表達(dá)式
基礎(chǔ)級(jí)表達(dá)式 → 父類表達(dá)式
基礎(chǔ)表達(dá)式 → 閉包表達(dá)式
基礎(chǔ)表達(dá)式 → 圓括號(hào)表達(dá)式
基礎(chǔ)表達(dá)式 → 元組表達(dá)式
基礎(chǔ)表達(dá)式 → 隱式成員表達(dá)式
基礎(chǔ)表達(dá)式 → 通配符表達(dá)式
基礎(chǔ)表達(dá)式 → key-path表達(dá)式
基礎(chǔ)表達(dá)式 → 選擇器表達(dá)式
基礎(chǔ)表達(dá)式 → key-path字符串表達(dá)式
字面量表達(dá)式語(yǔ)法
字面量表達(dá)式 → 字面量
字面量表達(dá)式 → 數(shù)組字面量 | 字典字面量 | 練習(xí)場(chǎng)字面量
字面量表達(dá)式 → #file | #line | #column | #function | dsohandle
數(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á)式
palyground 字面量 → #colorLiteral ( red : 表達(dá)式 , green :表達(dá)式, blue :表達(dá)式 , alpha : 表達(dá)式 )
playground 字面量 → #fileLiteral ( resourceName : 表達(dá)式 )
playground 字面量 → **#imageLiteral ( resourceName : 表達(dá)式 )
self 表達(dá)式語(yǔ)法
self 表達(dá)式 → self | self 方法表達(dá)式 | self 下標(biāo)表達(dá)式 | self 構(gòu)造器表達(dá)式
self 方法表達(dá)式 → self . 標(biāo)識(shí)符
self 下標(biāo)表達(dá)式 → self [ 函數(shù)調(diào)用參數(shù)表 ]
self 構(gòu)造器表達(dá)式 → self . init
父類表達(dá)式語(yǔ)法
父類表達(dá)式 → 父類方法表達(dá)式 | 父類下標(biāo)表達(dá)式 | 父類構(gòu)造器表達(dá)式
父類方法表達(dá)式 → super . 標(biāo)識(shí)符
父類下標(biāo)表達(dá)式 → super [函數(shù)調(diào)用參數(shù)表 ]
父類構(gòu)造器表達(dá)式 → super . init
閉包表達(dá)式語(yǔ)法
閉包簽名 → 參數(shù)子句 函數(shù)結(jié)果可選 *in
閉包簽名 → 標(biāo)識(shí)符列表 函數(shù)結(jié)果可選 in
閉包參數(shù)子句 ( ) | ( 閉包參數(shù)列表 | 標(biāo)識(shí)符列表 )
閉包參數(shù)列表 閉包參數(shù) | 閉包參數(shù), 閉包參數(shù)列表
閉包參數(shù) 閉包參數(shù)名 類型聲明 可選
閉包參數(shù) 閉包參數(shù)名 類型聲明 ...
閉包參數(shù)名 標(biāo)識(shí)符
捕獲列表 → 捕獲列表 [ 捕獲列表項(xiàng)列表 ]
捕獲列表項(xiàng)列表 → 捕獲列表項(xiàng) | 捕獲列表項(xiàng) , 捕獲列表項(xiàng)列表
捕獲列表項(xiàng) → 捕獲說(shuō)明符可選 表達(dá)式
捕獲說(shuō)明符 → weak | unowned | unowned(safe) | unowned(unsafe)
隱式成員表達(dá)式語(yǔ)法
隱式成員表達(dá)式 → . 標(biāo)識(shí)符
圓括號(hào)表達(dá)式語(yǔ)法
圓括號(hào)表達(dá)式 → ( 表達(dá)式 )
元組表達(dá)式語(yǔ)法
元組表達(dá)式 → ( ) | (元組元素, 元組元素列表 )
元組元素列表 → 元組元素 | 元組元素 , 元組元素列表 元組元素 → 表達(dá)式 | 標(biāo)識(shí)符 : 表達(dá)式
通配符表達(dá)式語(yǔ)法
通配符表達(dá)式 → _
key-path表達(dá)式語(yǔ)法
key-path 表達(dá)式 → \ 類型可選 . [多個(gè) key-path 組件] 多個(gè) key-path 組件 → key-path 組件 | key-path 組件 . 多個(gè) key-path 組件 key-path 組件 → 標(biāo)識(shí)符 多個(gè) key-path 后綴可選 | 多個(gè) key-path 后綴 多個(gè) key-path 后綴 → key-path 后綴 多個(gè) key-path 后綴可選 key-path-postfixes {./04-Expressions.md#key-path-postfixes}
key-path 后綴 → ? | ! | self | [ 函數(shù)調(diào)用參數(shù)表 ]
選擇器表達(dá)式語(yǔ)法
選擇器表達(dá)式 → #selector ( 表達(dá)式 )
選擇器表達(dá)式 → #selector ( getter:表達(dá)式 )
選擇器表達(dá)式 → #selector ( setter:表達(dá)式 )
key-path 字符串表達(dá)式語(yǔ)法 key-path 字符串表達(dá)式 → #keyPath ( 表達(dá)式 )
后綴表達(dá)式表達(dá)式語(yǔ)法
后綴表達(dá)式 → 基本表達(dá)式
后綴表達(dá)式 → 后綴表達(dá)式 后綴運(yùn)算符
后綴表達(dá)式 → 函數(shù)調(diào)用表達(dá)式
后綴表達(dá)式 → 構(gòu)造器表達(dá)式
后綴表達(dá)式 → 顯式成員表達(dá)式
后綴表達(dá)式 → 后綴 self 表達(dá)式
后綴表達(dá)式 → 下標(biāo)表達(dá)式
后綴表達(dá)式 → 強(qiáng)制取值表達(dá)式
后綴表達(dá)式 → 可選鏈表達(dá)式
函數(shù)調(diào)用表達(dá)式語(yǔ)法
函數(shù)調(diào)用表達(dá)式 → 后綴表達(dá)式 函數(shù)調(diào)用參數(shù)子句
函數(shù)調(diào)用表達(dá)式 → 后綴表達(dá)式 函數(shù)調(diào)用參數(shù)子句可選 尾隨閉包
函數(shù)調(diào)用參數(shù)子句 → ( ) | ( 函數(shù)調(diào)用參數(shù)表 )
函數(shù)調(diào)用參數(shù)表 → 函數(shù)調(diào)用參數(shù) | 函數(shù)調(diào)用參數(shù) , 函數(shù)調(diào)用參數(shù)表
函數(shù)調(diào)用參數(shù) → 表達(dá)式 | 標(biāo)識(shí)符 : 表達(dá)式
函數(shù)調(diào)用參數(shù) → 運(yùn)算符 | 標(biāo)識(shí)符 : 運(yùn)算符
尾隨閉包 → 閉包表達(dá)式
初始化表達(dá)式語(yǔ)法
構(gòu)造器表達(dá)式 → 后綴表達(dá)式 . init
顯式成員表達(dá)式語(yǔ)法
顯式成員表達(dá)式 → 后綴表達(dá)式 . [十進(jìn)制數(shù)字] (02-Lexical-Structure.md#decimal-digit)
顯式成員表達(dá)式 → 后綴表達(dá)式 . 標(biāo)識(shí)符 泛型實(shí)參子句可選
顯式成員表達(dá)式 → 后綴表達(dá)式 . [標(biāo)識(shí)符] (02-Lexical-Structure.md#identifier) ( 參數(shù)名稱 )
參數(shù)名稱 → 參數(shù)名 參數(shù)名稱可選
參數(shù)名 → 標(biāo)識(shí)符 :
后綴 self 表達(dá)式語(yǔ)法
后綴 self 表達(dá)式 → 后綴表達(dá)式 . self
下標(biāo)表達(dá)式語(yǔ)法
強(qiáng)制取值表達(dá)式語(yǔ)法 強(qiáng)制取值表達(dá)式 → 后綴表達(dá)式 !
可選鏈?zhǔn)奖磉_(dá)式語(yǔ)法 可選鏈表達(dá)式 → 后綴表達(dá)式 ?
語(yǔ)句語(yǔ)法
語(yǔ)句 → 表達(dá)式 ;可選
語(yǔ)句 → 聲明 ;可選
語(yǔ)句 → 循環(huán)語(yǔ)句 ;可選
語(yǔ)句 → 分支語(yǔ)句 ;可選
語(yǔ)句 → 標(biāo)簽語(yǔ)句 ;可選
語(yǔ)句 → 控制轉(zhuǎn)移語(yǔ)句 ;可選
語(yǔ)句 → 延遲語(yǔ)句 ;可選
語(yǔ)句 → 執(zhí)行語(yǔ)句 ;可選
語(yǔ)句 → 編譯控制語(yǔ)句
循環(huán)語(yǔ)句語(yǔ)法
循環(huán)語(yǔ)句 → for-in 語(yǔ)句
循環(huán)語(yǔ)句 → while 語(yǔ)句
循環(huán)語(yǔ)句 → repeat-while 語(yǔ)句
For-In 循環(huán)語(yǔ)法
While 循環(huán)語(yǔ)法
Repeat-While 語(yǔ)句語(yǔ)法
分支語(yǔ)句語(yǔ)法
分支語(yǔ)句 → if 語(yǔ)句
分支語(yǔ)句 → guard 語(yǔ)句
分支語(yǔ)句 → switch 語(yǔ)句
If 語(yǔ)句語(yǔ)法
Guard 語(yǔ)句語(yǔ)法
Switch 語(yǔ)句語(yǔ)法
switch 語(yǔ)句 → switch 表達(dá)式 { switch-case集可選 }
switch-case集 → switch-case switch-case集可選
switch-case → case 標(biāo)簽 語(yǔ)句集
switch-case → default 標(biāo)簽 語(yǔ)句集
switch-case → 條件 switch-case
case 標(biāo)簽 → 特性可選 case case 項(xiàng)集 :
case 項(xiàng)集 → 模式 where 子句可選 | 模式 where 子句可選 , case 項(xiàng)集
default 標(biāo)簽 → 特性可選 default :
where 子句 → where where 表達(dá)式
where 表達(dá)式 → 表達(dá)式
條件 switch-case → switch if 指令子句 switch elseif 指令子句集可選 switch else 指令子句可選 endif 指令
switch if 指令子句 → if 指令 編譯條件 switch-case集可選
switch elseif 指令子句集 → elseif 指令子句 switch elseif 指令子句集可選
switch elseif 指令子句 → elseif 指令 編譯條件 switch-case集可選
switch else 指令子句 → else 指令 switch-case集可選
標(biāo)簽語(yǔ)句語(yǔ)法
標(biāo)簽語(yǔ)句 → 語(yǔ)句標(biāo)簽 循環(huán)語(yǔ)句
標(biāo)簽語(yǔ)句 → 語(yǔ)句標(biāo)簽 if 語(yǔ)句
標(biāo)簽語(yǔ)句 → 語(yǔ)句標(biāo)簽 switch 語(yǔ)句
標(biāo)簽語(yǔ)句 → 語(yǔ)句標(biāo)簽 do 語(yǔ)句
語(yǔ)句標(biāo)簽 → 標(biāo)簽名稱 :
標(biāo)簽名稱 → 標(biāo)識(shí)符
控制轉(zhuǎn)移語(yǔ)句語(yǔ)法
控制轉(zhuǎn)移語(yǔ)句 → break 語(yǔ)句
控制轉(zhuǎn)移語(yǔ)句 → continue 語(yǔ)句
控制轉(zhuǎn)移語(yǔ)句 → fallthrough 語(yǔ)句
控制轉(zhuǎn)移語(yǔ)句 → return 語(yǔ)句
控制轉(zhuǎn)移語(yǔ)句 → throw 語(yǔ)句
Break 語(yǔ)句語(yǔ)法
break 語(yǔ)句 → break 標(biāo)簽名稱可選
Continue 語(yǔ)句語(yǔ)法
continue 語(yǔ)句 → continue 標(biāo)簽名稱可選
Fallthrough 語(yǔ)句語(yǔ)法
fallthrough 語(yǔ)句 → fallthrough
Return 語(yǔ)句語(yǔ)法
return 語(yǔ)句 → return 表達(dá)式可選
Throw 語(yǔ)句語(yǔ)法
throw 語(yǔ)句 → throw 表達(dá)式
Defer 語(yǔ)句語(yǔ)法
defer 語(yǔ)句 → defer 代碼塊
Do 語(yǔ)句語(yǔ)法
do 語(yǔ)句 → do 代碼塊 catch 子句集可選
編譯控制語(yǔ)句
編譯控制語(yǔ)句 → 條件編譯塊
編譯控制語(yǔ)句 → 行控制語(yǔ)句
編譯控制語(yǔ)句 → 診斷語(yǔ)句
條件編譯塊語(yǔ)法
條件編譯塊 → if 指令子句 elseif 指令子句集可選 else 指令子句可選 endif 指令
if 指令子句 → if 指令 編譯條件 語(yǔ)句集可選
elseif 指令子句集 → elseif 指令子句 elseif 指令子句集可選
elseif 指令子句 → elseif 指令 編譯條件 語(yǔ)句集可選
if 指令 → #if
elseif 指令 → #elseif
else 指令 → #else
endif 指令 → #endif
編譯條件 → 平臺(tái)條件
編譯條件 → 標(biāo)識(shí)符
編譯條件 → 布爾字面量
編譯條件 → ( 編譯條件 )
編譯條件 → ! 編譯條件
平臺(tái)條件 → os ( 操作系統(tǒng) )
平臺(tái)條件 → arch ( 架構(gòu) )
平臺(tái)條件 → swift ( >= swift 版本 ) | swift ( < swift 版本 )
平臺(tái)條件 → compiler ( >= swift 版本 ) | compiler ( < swift 版本 )
平臺(tái)條件 → canImport ( 模塊名 )
平臺(tái)條件 → targetEnvironment ( 環(huán)境 )
操作系統(tǒng) → macOS | iOS | watchOS | tvOS
架構(gòu) → i386 | x86_64 | arm | arm64
swift 版本 → 十進(jìn)制數(shù)字集 swift 版本后綴可選
swift 版本后綴 → . 十進(jìn)制數(shù)字集 swift 版本集可選
模塊名 → 標(biāo)識(shí)符
環(huán)境 → simulator
行控制語(yǔ)句語(yǔ)法
行控制語(yǔ)句 → #sourceLocation ( file: 文件名 , line: 行號(hào) )
行控制語(yǔ)句 → #sourceLocation ( )
行號(hào) → 一個(gè)大于 0 的十進(jìn)制數(shù)字
文件名 → 靜態(tài)字符串字面量
編譯期診斷語(yǔ)句語(yǔ)法
診斷語(yǔ)句 → #error ( 診斷信息 )
診斷語(yǔ)句 → #warning ( 診斷信息 )
診斷信息 → 靜態(tài)字符串字面量
可用性條件語(yǔ)法
可用性條件 → #available ( 可用性參數(shù)集 )
可用性參數(shù)集 → 可用性參數(shù) | 可用性參數(shù) , 可用性參數(shù)集)
可用性參數(shù) → 平臺(tái)名 平臺(tái)版本
可用性參數(shù) → *
平臺(tái)名 → iOS | iOSApplicationExtension
平臺(tái)名 → macOS | macOSApplicationExtension
平臺(tái)名 → watchOS
平臺(tái)名 → tvOS
平臺(tái)版本 → 十進(jìn)制數(shù)字集
平臺(tái)版本 → 十進(jìn)制數(shù)字集 . 十進(jìn)制數(shù)字集
平臺(tái)版本 → 十進(jìn)制數(shù)字集 . 十進(jìn)制數(shù)字集 . 十進(jìn)制數(shù)字集
聲明語(yǔ)法
聲明 → 導(dǎo)入聲明
聲明 → 常量聲明
聲明 → 變量聲明
聲明 → 類型別名聲明
聲明 → 函數(shù)聲明
聲明 → 枚舉聲明
聲明 → 結(jié)構(gòu)體聲明
聲明 → 類聲明
聲明 → 協(xié)議聲明
聲明 → 構(gòu)造器聲明
聲明 → 析構(gòu)器聲明
聲明 → 擴(kuò)展聲明
聲明 → 下標(biāo)聲明
聲明 → 運(yùn)算符聲明
聲明 → 優(yōu)先級(jí)組聲明
頂級(jí)聲明語(yǔ)法
頂級(jí)聲明 → 多條語(yǔ)句可選
代碼塊語(yǔ)法
代碼塊 → { 多條語(yǔ)句可選 }
導(dǎo)入聲明語(yǔ)法
導(dǎo)入聲明 → 特性可選 import 導(dǎo)入類型可選 導(dǎo)入路徑
導(dǎo)入類型 → typealias | struct | class | enum | protocol | let | var | func
導(dǎo)入路徑 → 導(dǎo)入路徑標(biāo)識(shí)符 | 導(dǎo)入路徑標(biāo)識(shí)符 . 導(dǎo)入路徑
導(dǎo)入路徑標(biāo)識(shí)符 → 標(biāo)識(shí)符 | 運(yùn)算符
常數(shù)聲明語(yǔ)法
常量聲明 → 特性可選 聲明修飾符集可選 let 模式構(gòu)造器集
模式構(gòu)造器集 → 模式構(gòu)造器 | 模式構(gòu)造器 , 模式構(gòu)造器集
構(gòu)造器 → = 表達(dá)式
變量聲明語(yǔ)法
變量聲明 → 變量聲明頭 模式構(gòu)造器集
變量聲明 → 變量聲明頭 變量名 類型注解 getter-setter 塊
變量聲明 → 變量聲明頭 變量名 類型注解 getter-setter 關(guān)鍵字塊
變量聲明 → 變量聲明頭 變量名 構(gòu)造器可選 willSet-didSet 代碼塊
變量聲明 → 變量聲明頭 變量名 類型注解 構(gòu)造器可選 willSet-didSet 代碼塊
變量名稱 → 標(biāo)識(shí)符
getter-setter 塊 → 代碼塊
getter-setter 塊 → { getter 子句 setter 子句可選 }
getter-setter 塊 → { setter 子句 getter 子句 }
getter 子句 → 特性可選 可變性修飾符可選 get 代碼塊
setter 子句 → 特性可選 可變性修飾符可選 set setter 名稱可選 代碼塊
setter 名稱 → ( 標(biāo)識(shí)符 )
getter-setter 關(guān)鍵字(Keyword)塊 → { getter 關(guān)鍵字子句 setter 關(guān)鍵字子句可選 }
getter-setter 關(guān)鍵字(Keyword)塊 → { setter 關(guān)鍵字子句 getter 關(guān)鍵字子句 }
getter 關(guān)鍵字(Keyword)子句 → 特性可選 可變性修飾符可選 get
setter 關(guān)鍵字(Keyword)子句 → 特性可選 可變性修飾符可選 set
willSet-didSet 代碼塊 → { willSet 子句 didSet 子句可選 }
willSet-didSet 代碼塊 → { didSet 子句 willSet 子句可選 }
willSet 子句 → 特性可選 willSet setter 名稱可選 代碼塊
didSet 子句 → 特性可選
類型別名聲明語(yǔ)法
類型別名聲明 → 特性可選 訪問(wèn)級(jí)別修飾符 typealias 類型別名名稱 泛型參數(shù)子句可選 類型別名賦值
類型別名名稱 → 標(biāo)識(shí)符
類型別名賦值 → = 類型
函數(shù)聲明語(yǔ)法
函數(shù)聲明 → 函數(shù)頭 函數(shù)名 泛型參數(shù)子句可選 函數(shù)簽名 泛型 where 子句可選 函數(shù)體可選
函數(shù)名 → 標(biāo)識(shí)符 | 運(yùn)算符
函數(shù)簽名 → 參數(shù)子句 throws可選 函數(shù)結(jié)果可選
函數(shù)簽名 → 參數(shù)子句 rethrows 函數(shù)結(jié)果可選
函數(shù)體 → 代碼塊
參數(shù)子句 → ( ) | ( 參數(shù)集 )
參數(shù)集 → 參數(shù) | 參數(shù) , 參數(shù)集
參數(shù) → 外部參數(shù)名可選 本地參數(shù)名 類型注解 默認(rèn)參數(shù)子句可選
參數(shù) → 外部參數(shù)名可選 本地參數(shù)名 類型注解
參數(shù) → 外部參數(shù)名可選 本地參數(shù)名 類型注解 ...
外部參數(shù)名 → 標(biāo)識(shí)符
本地參數(shù)名 → 標(biāo)識(shí)符
默認(rèn)參數(shù)子句 → = 表達(dá)式
枚舉聲明語(yǔ)法
枚舉聲明 → 特性可選 訪問(wèn)級(jí)別修飾符可選 聯(lián)合式枚舉
枚舉聲明 → 特性可選 訪問(wèn)級(jí)別修飾符可選 原始值式枚舉
聯(lián)合式枚舉 → indirect可選 enum 枚舉名 泛型參數(shù)子句可選 類型繼承子句可選 泛型 where 子句可選 { 聯(lián)合式枚舉成員可選 }
聯(lián)合式枚舉成員集 → 聯(lián)合式枚舉成員 聯(lián)合樣式枚舉成員集可選
聯(lián)合樣式枚舉成員 → 聲明 | 聯(lián)合式枚舉 case 子句 | 編譯控制語(yǔ)句
聯(lián)合式枚舉 case 子句 → 特性可選 indirect可選 case 聯(lián)合式枚舉 case 集
聯(lián)合式枚舉 case 集 → 聯(lián)合式枚舉 case | 聯(lián)合式枚舉 case , 聯(lián)合式枚舉 case 集
聯(lián)合式枚舉 case → 枚舉的 case 名 元組類型可選
枚舉名 → 標(biāo)識(shí)符
枚舉的 case 名 → 標(biāo)識(shí)符
原始值式枚舉 → enum 枚舉名 泛型參數(shù)子句可選 類型繼承子句 泛型 where 子句可選 { 原始值式枚舉成員集 }
原始值式枚舉成員集 → 原始值式枚舉成員 原始值式枚舉成員集可選
原始值式枚舉成員 → 聲明 | 原始值式枚舉 case 子句 | 編譯控制語(yǔ)句
原始值式枚舉 case 子句 → 特性可選 case 原始值式枚舉 case 集
原始值式枚舉 case 集 → 原始值式枚舉 case | 原始值式枚舉 case , 原始值式枚舉 case 集
原始值式枚舉 case → 枚舉的 case 名 原始值賦值可選
原始值賦值 → = 原始值字面量
原始值字面量(raw-value-literal) → 數(shù)值字面量 | 靜態(tài)字符串字面量 | 布爾字面量
結(jié)構(gòu)體聲明語(yǔ)法
結(jié)構(gòu)體聲明 → 特性可選 訪問(wèn)級(jí)別修飾符可選 struct 結(jié)構(gòu)體名稱 泛型參數(shù)子句可選 類型繼承子句可選 泛型 where 子句可選 結(jié)構(gòu)體主體
結(jié)構(gòu)體名稱 → 標(biāo)識(shí)符
結(jié)構(gòu)體主體 → { 結(jié)構(gòu)體成員集可選 }
結(jié)構(gòu)體成員集 → 結(jié)構(gòu)體成員 結(jié)構(gòu)體成員集可選
結(jié)構(gòu)體成員 → 聲明集 | 編譯控制語(yǔ)句
類聲明語(yǔ)法
類聲明 → 特性可選 訪問(wèn)級(jí)別修飾符可選 final可選 class 類名 泛型參數(shù)子句可選 類型繼承子句 泛型 where 子句可選 類主體
類聲明 → 特性可選 final 訪問(wèn)級(jí)別修飾符可選 class 類名 泛型參數(shù)子句可選 類型繼承子句 泛型 where 子句可選 類主體
類名 → 標(biāo)識(shí)符
類主體 → { 類成員集可選 }
類成員 → 聲明集 | 編譯控制語(yǔ)句
協(xié)議聲明語(yǔ)法
協(xié)議聲明 → 特性可選 訪問(wèn)級(jí)別修飾符可選 protocol 協(xié)議名 類型繼承子句可選 泛型 where 子句可選 協(xié)議主體
協(xié)議名 → 標(biāo)識(shí)符
協(xié)議主體 → { 協(xié)議成員集可選 }
協(xié)議成員集 → 協(xié)議成員 協(xié)議成員集可選
協(xié)議成員 → 協(xié)議成員聲明 | 編譯控制語(yǔ)句
協(xié)議成員聲明 → 協(xié)議屬性聲明
協(xié)議成員聲明 → 協(xié)議方法聲明
協(xié)議成員聲明 → 協(xié)議構(gòu)造器聲明
協(xié)議成員聲明 → 協(xié)議下標(biāo)聲明
協(xié)議成員聲明 → 協(xié)議關(guān)聯(lián)類型聲明
協(xié)議成員聲明 → 類型別名聲明
協(xié)議屬性聲明語(yǔ)法
協(xié)議屬性聲明 → 變量聲明頭 變量名 類型注解 getter-setter 關(guān)鍵字塊
協(xié)議方法聲明語(yǔ)法
協(xié)議方法聲明 → 函數(shù)頭 函數(shù)名 泛型參數(shù)子句可選 函數(shù)簽名 泛型 where 子句可選
協(xié)議構(gòu)造器聲明語(yǔ)法
協(xié)議構(gòu)造器聲明 → 構(gòu)造器頭 泛型參數(shù)子句可選 參數(shù)子句 throws可選 泛型 where 子句可選
協(xié)議構(gòu)造器聲明 → 構(gòu)造器頭 泛型參數(shù)子句可選 參數(shù)子句 rethrows 泛型 where 子句可選
協(xié)議下標(biāo)聲明語(yǔ)法
協(xié)議下標(biāo)聲明 → 下標(biāo)頭 下標(biāo)結(jié)果 泛型 where 子句可選 getter-setter 關(guān)鍵字塊
協(xié)議關(guān)聯(lián)類型聲明語(yǔ)法
協(xié)議關(guān)聯(lián)類型聲明 → 特性可選 訪問(wèn)級(jí)別修飾符可選 associatedtype 類型別名 類型繼承子句可選 類型別名賦值可選 泛型 where 子句可選
構(gòu)造器聲明語(yǔ)法
構(gòu)造器聲明 → 構(gòu)造器頭 泛型參數(shù)子句可選 參數(shù)子句 throws可選 泛型 where 子句可選 構(gòu)造器主體
構(gòu)造器聲明 → 構(gòu)造器頭 泛型參數(shù)子句可選 參數(shù)子句 rethrows 泛型 where 子句可選 構(gòu)造器主體
構(gòu)造器頭(Head) → 特性可選 聲明修飾符集可選 init
構(gòu)造器頭(Head) → 特性可選 聲明修飾符集可選 init ?
構(gòu)造器頭(Head) → 特性可選 聲明修飾符集可選 init !
構(gòu)造器主體 → 代碼塊
析構(gòu)器聲明語(yǔ)法
擴(kuò)展聲明語(yǔ)法
擴(kuò)展聲明 → 特性可選 訪問(wèn)級(jí)別修飾符可選 extension 類型標(biāo)識(shí) 類型繼承子句可選 泛型 where 子句可選 擴(kuò)展主體
擴(kuò)展主體 → { 擴(kuò)展成員集可選 }
擴(kuò)展成員集 → 擴(kuò)展成員 擴(kuò)展成員集可選
擴(kuò)展成員 → 聲明集 | 編譯控制語(yǔ)句
下標(biāo)聲明語(yǔ)法
下標(biāo)聲明 → 下標(biāo)頭 下標(biāo)結(jié)果 泛型 where 子句可選 代碼塊
下標(biāo)聲明 → 下標(biāo)頭 下標(biāo)結(jié)果 泛型 where 子句可選 getter-setter 塊
下標(biāo)聲明 → 下標(biāo)頭 下標(biāo)結(jié)果 泛型 where 子句可選 getter-setter 關(guān)鍵字塊
下標(biāo)頭(Head) → 特性可選 聲明修飾符集可選 subscript 泛型參數(shù)子句可選 參數(shù)子句
運(yùn)算符聲明語(yǔ)法
運(yùn)算符聲明 → 前置運(yùn)算符聲明 | 后置運(yùn)算符聲明 | 中置運(yùn)算符聲明
前置運(yùn)算符聲明 → prefix operator 運(yùn)算符
后置運(yùn)算符聲明 → postfix operator 運(yùn)算符
中置運(yùn)算符聲明 → infix operator 運(yùn)算符 中置運(yùn)算符特性可選
中置運(yùn)算符特性 → 優(yōu)先級(jí)組名
優(yōu)先級(jí)組聲明語(yǔ)法
優(yōu)先級(jí)組聲明 → precedencegroup 優(yōu)先級(jí)組名 { 優(yōu)先級(jí)組特性可選 }
優(yōu)先級(jí)組特性 → 優(yōu)先級(jí)組屬性 優(yōu)先級(jí)組特性可選
優(yōu)先級(jí)組屬性 → 優(yōu)先級(jí)組關(guān)系
優(yōu)先級(jí)組屬性 → 優(yōu)先級(jí)組賦值
優(yōu)先級(jí)組屬性 → 優(yōu)先級(jí)組結(jié)合
優(yōu)先級(jí)組關(guān)系 → higherThan : 優(yōu)先級(jí)組名集
優(yōu)先級(jí)組關(guān)系 → lowerThan : 優(yōu)先級(jí)組名集
優(yōu)先級(jí)組賦值 → assignment : 布爾字面量
優(yōu)先級(jí)組結(jié)合 → associativity : left
優(yōu)先級(jí)組結(jié)合 → associativity : right
優(yōu)先級(jí)組結(jié)合 → associativity : none
優(yōu)先級(jí)組名集 → 優(yōu)先級(jí)組名 | 優(yōu)先級(jí)組名 , 優(yōu)先級(jí)組名集
優(yōu)先級(jí)組名 → 標(biāo)識(shí)符
聲明修飾符語(yǔ)法
聲明修飾符 → class | convenience | dynamic | final | infix | lazy | optional | override | postfix | prefix | required | static | unowned | unowned(safe) | unowned(unsafe) | weak
聲明修飾符 → 訪問(wèn)級(jí)別修飾符
聲明修飾符 → 可變性修飾符
訪問(wèn)級(jí)別修飾符 → private | private(set)
訪問(wèn)級(jí)別修飾符 → fileprivate | fileprivate(set)
訪問(wèn)級(jí)別修飾符 → internal | internal(set)
訪問(wèn)級(jí)別修飾符 → public | public(set)
訪問(wèn)級(jí)別修飾符 → open | open(set)
可變性修飾符 → mutating | nonmutating
屬性語(yǔ)法
屬性 → @ 屬性名 屬性參數(shù)子句可選
屬性名 → 標(biāo)識(shí)符
屬性參數(shù)子句 → { 平衡令牌集可選 }
平衡令牌 → ( 平衡令牌集可選 )
平衡令牌 → [ 平衡令牌集可選 ]
平衡令牌 → { 平衡令牌集可選 }
平衡令牌 → 任意標(biāo)識(shí)符、關(guān)鍵字、字面量或運(yùn)算符
平衡令牌 → 除 ( 、)、[、]、{、} 外的任意標(biāo)點(diǎn)符號(hào)
模式語(yǔ)法
模式 → 標(biāo)識(shí)符模式 類型注解可選
模式 → 值綁定模式
模式 → 枚舉 case 模式
模式 → 可選模式
模式 → 類型轉(zhuǎn)換模式
模式 → 表達(dá)式模式
通配符模式語(yǔ)法
通配符模式 → _
標(biāo)識(shí)符模式語(yǔ)法
標(biāo)識(shí)符模式 → 標(biāo)識(shí)符
值綁定模式語(yǔ)法
元組模式語(yǔ)法
元組模式 → ( 元組模式元素集可選 )
元組模式元素集 → 元組模式元素 | 元組模式元素 , 元組模式元素集
元組模式元素 → 模式 | 標(biāo)識(shí)符 : 模式
枚舉 case 模式語(yǔ)法
enum-case-pattern → 類型標(biāo)識(shí)可選 . 枚舉 case 名 元組模式可選
可選模式語(yǔ)法
可選模式 → 標(biāo)識(shí)符模式 ?
類型轉(zhuǎn)換模式語(yǔ)法
is 模式 → is 類型
表達(dá)式模式語(yǔ)法
表達(dá)式模式 → 表達(dá)式
泛型形參子句語(yǔ)法
泛型參數(shù)子句 → < 泛型參數(shù)集 >
泛型參數(shù)集 → 泛型參數(shù) | 泛形參數(shù) , 泛型參數(shù)集
泛形參數(shù) → 類型名稱
泛形參數(shù) → 類型名稱 : 類型標(biāo)識(shí)
泛形參數(shù) → 類型名稱 : 協(xié)議合成類型
泛型 where 子句 → where 約束集
一致性約束 → 類型標(biāo)識(shí) : 類型標(biāo)識(shí)
一致性約束 → 類型標(biāo)識(shí) : 協(xié)議合成類型
同類型約束 → 類型標(biāo)識(shí) == 類型
泛型實(shí)參子句語(yǔ)法
泛型實(shí)參子句 → < 泛型實(shí)參集 >
泛型實(shí)參集 → 泛型實(shí)參 | 泛形實(shí)參 , 泛型實(shí)參集
泛形實(shí)參 → 類型