<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 語法總結(Summary of the Grammar) ## 詞法結構 {#lexical-structure} > 空白字符語法 > > *空白字符* → [空白字符項](./02_Lexical_Structure.md#whitespace-item) [空白字符](./02_Lexical_Structure.md#whitespace)<sub>可選</sub> > > *空白字符項* → [換行符](./02_Lexical_Structure.md#line-break) > > *空白字符項* → [注釋](./02_Lexical_Structure.md#comment) > > *空白字符項* → [多行注釋](./02_Lexical_Structure.md#multiline-comment) > > *空白字符項* → U+0000,U+0009,U+000B,U+000C 或 U+0020 > > > > 換行符* → U+000A > > *換行符* → U+000D > > *換行符* → U+000D 后面是 U+000A > > > > *注釋* → **//** [單行內容注釋](./02_Lexical_Structure.md#comment-text) [換行符](./02_Lexical_Structure.md#line-break) > > *注釋* → **/\*** [多行內容注釋](./02_Lexical_Structure.md#multiline-comment-text) **\*/** > > > > *注釋內容* → [注釋內容項](./02_Lexical_Structure.md#comment-text-item) [注釋內容](./02_Lexical_Structure.md#comment-text)<sub>可選</sub> > > *注釋內容項* → 除 U+000A 或 U+000D 外的任何 Unicode 標量值 > > > > *多行注釋內容* → [多行注釋內容項](./02_Lexical_Structure.md#multiline-comment-text-item) [多行注釋內容](./02_Lexical_Structure.md#multiline-comment-text)<sub>可選</sub> > > *多行注釋內容項* → [多行內容](./02_Lexical_Structure.md#multiline-comment) > > *多行注釋內容項* → [注釋內容項](./02_Lexical_Structure.md#comment-text-item) > > *多行注釋內容項* → 除 **/\*** 或 **\*/** 外的任何 Unicode 標量值 > <!-- --> > 標識符語法 > > *標識符* → [標識符頭(Head)](./02_Lexical_Structure.md#identifier-head) [標識符字符集](./02_Lexical_Structure.md#identifier-characters)<sub>可選</sub> > > *標識符* → [標識符頭(Head)](./02_Lexical_Structure.md#identifier-head) [標識符字符集](./02_Lexical_Structure.md#identifier-characters)<sub>可選</sub> > > *標識符* → [隱式參數名](./02_Lexical_Structure.md#implicit-parameter-name) > > *標識符* → [屬性包裝器呈現值](./02_Lexical_Structure.md#property-wrapper-projection) > > *標識符集* → [標識符](./02_Lexical_Structure.md#identifier) | [標識符](./02_Lexical_Structure.md#identifier) **,** [標識符集](./02_Lexical_Structure.md#identifier-list) > > *標識符頭(Head)* → 大寫或者小寫字母 A 到 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 > > *標識符字符* → 數值 0 到 9 > > *標識符字符* → U+0300–U+036F, U+1DC0–U+1DFF, U+20D0–U+20FF, or U+FE20–U+FE2F > > *標識符字符* → [標識符頭(Head)](./02_Lexical_Structure.md#identifier-head) > > *標識符字符集* → [標識符字符](./02_Lexical_Structure.md#identifier-character) [標識符字符集](./02_Lexical_Structure.md#identifier-characters)<sub>可選</sub> > > *隱式參數名* → **$** [十進制數字集](./02_Lexical_Structure.md#decimal-digits) > > *屬性包裝器呈現值* → **$** [標識符字符集](./02_Lexical_Structure.md#identifier-characters) > <!-- --> > 字面量語法 > > *字面量* → [數值型字面量](./02_Lexical_Structure.md#numeric-literal) | [字符串字面量](./02_Lexical_Structure.md#string-literal) | [布爾字面量](./02_Lexical_Structure.md#boolean-literal) | [空字面量](./02_Lexical_Structure.md#nil-literal) > > *數值型字面量* → **-**<sub>可選</sub>[整形字面量](./02_Lexical_Structure.md#integer-literal) | **-**<sub>可選</sub>[浮點型字面量](./02_Lexical_Structure.md#floating-point-literal) > > *布爾字面量* → **true** | **false** > > *空字面量* → **nil** > <!-- --> > 整型字面量語法 > > *整型字面量* → [二進制字面量](./02_Lexical_Structure.md#binary-literal) > > *整型字面量* → [八進制字面量](./02_Lexical_Structure.md#octal-literal) > > *整型字面量* → [十進制字面量](./02_Lexical_Structure.md#decimal-literal) > > *整型字面量* → [十六進制字面量](./02_Lexical_Structure.md#hexadecimal-literal) > > *二進制字面量* → **0b** [二進制數字](./02_Lexical_Structure.md#binary-digit) [二進制字面量字符集](./02_Lexical_Structure.md#binary-literal-characters)<sub>可選</sub> > > *二進制數字* → 數值 0 到 1 > > *二進制字面量字符* → [二進制數字](./02_Lexical_Structure.md#binary-digit) | **-** > > *二進制字面量字符集* → [二進制字面量字符](./02_Lexical_Structure.md#binary-literal-character) [二進制字面量字符集](./02_Lexical_Structure.md#binary-literal-characters)<sub>可選</sub> > > *八進制字面量* → **0o** [八進制數字](./02_Lexical_Structure.md#octal-digit) [八進制字符集](./02_Lexical_Structure.md#octal-literal-characters)<sub>可選</sub> > > *八進字數字* → 數值 0 到 7 > > *八進制字符* → [八進制數字](./02_Lexical_Structure.md#octal-digit) | **-** > > *八進制字符集* → [八進制字符](./02_Lexical_Structure.md#octal-literal-character) [八進制字符集](./02_Lexical_Structure.md#octal-literal-characters)<sub>可選</sub> > > *十進制字面量* → [十進制數字](./02_Lexical_Structure.md#decimal-digit) [十進制字符集](./02_Lexical_Structure.md#decimal-literal-characters)<sub>可選</sub> > > *十進制數字* → 數值 0 到 9 > > *十進制數字集* → [十進制數字](./02_Lexical_Structure.md#decimal-digit) [十進制數字集](./02_Lexical_Structure.md#decimal-digits)<sub>可選</sub> > > *十進制字面量字符* → [十進制數字](./02_Lexical_Structure.md#decimal-digit) | **-** > > *十進制字面量字符集* → [十進制字面量字符](./02_Lexical_Structure.md#decimal-literal-character) [十進制字面量字符集](./02_Lexical_Structure.md#decimal-literal-characters)<sub>可選</sub> > > *十六進制字面量* → **0x** [十六進制數字](./02_Lexical_Structure.md#hexadecimal-digit) [十六進制字面量字符集](./02_Lexical_Structure.md#hexadecimal-literal-characters)<sub>可選</sub> > > *十六進制數字* → 數值 0 到 9,a 到 f,或者 A 到 F > > *十六進制字符* → [十六進制數字](./02_Lexical_Structure.md#hexadecimal-digit) | **-** > > *十六進制字面量字符集* → [十六進制字符](./02_Lexical_Structure.md#hexadecimal-literal-character) [十六進制字面量字符集](./02_Lexical_Structure.md#hexadecimal-literal-characters)<sub>可選</sub> > <!-- --> > 浮點型字面量語法 > > *浮點數字面量* → [十進制字面量](./02_Lexical_Structure.md#decimal-literal) [十進制分數](./02_Lexical_Structure.md#decimal-fraction)<sub>可選</sub>[十進制指數](./02_Lexical_Structure.md#decimal-exponent)<sub>可選</sub> > > *浮點數字面量* → [十六進制字面量](./02_Lexical_Structure.md#hexadecimal-literal) [十六進制分數](./02_Lexical_Structure.md#hexadecimal-fraction)<sub>可選</sub>[十六進制指數](./02_Lexical_Structure.md#hexadecimal-exponent) > > *十進制分數* → **.** [十進制字面量](./02_Lexical_Structure.md#decimal-literal) > > *十進制指數* → [浮點數 e](./02_Lexical_Structure.md#floating-point-e) [正負號](./02_Lexical_Structure.md#sign)<sub>可選</sub>[十進制字面量](./02_Lexical_Structure.md#decimal-literal) > > *十六進制分數* → **.** [十六進制數](./02_Lexical_Structure.md#hexadecimal-literal) > > *十六進制指數* → [浮點數 p](./02_Lexical_Structure.md#floating-point-p) [正負號](./02_Lexical_Structure.md#sign)<sub>可選</sub>[十六進制字面量](./02_Lexical_Structure.md#hexadecimal-literal) > > *浮點數 e* → **e** | **E** > > *浮點數 p* → **p** | **P** > > *正負號* → **+** | **-** > <!-- --> > 字符串型字面量語法 > *字符串字面量* → [靜態字符串字面量](./02_Lexical_Structure.md#static-string-literal) | [插值字符串字面量](./02_Lexical_Structure.md#interpolated-string-literal) > > *字符串開分隔定界符* → [字符串擴展分隔符](./02_Lexical_Structure.md#extended-string-literal-delimiter) **"** > > *字符串閉分隔定界符* → **"** [字符串擴展分隔符](./02_Lexical_Structure.md#extended-string-literal-delimiter)<sub>可選</sub> > > *靜態字符串字面量* → [字符串開分隔定界符](./02_Lexical_Structure.md#extended-string-literal-delimiter) [引用文本](./02_Lexical_Structure.md#quoted-text)<sub>可選</sub> [字符串閉分隔定界符](./02_Lexical_Structure.md#extended-string-literal-delimiter) > > *靜態字符串字面量* → [多行字符串開分隔定界符](./02_Lexical_Structure.md#extended-string-literal-delimiter) [多行引用文本](./02_Lexical_Structure.md#multiline-quoted-text)<sub>可選</sub> [多行字符串閉分隔定界符](./02_Lexical_Structure.md#extended-string-literal-delimiter) > > *多行字符串開分隔定界符* → [字符串擴展分隔符](./02_Lexical_Structure.md#extended-string-literal-delimiter) **"""** > > *多行字符串閉分隔定界符* → **"""** [字符串擴展分隔符](./02_Lexical_Structure.md#extended-string-literal-delimiter) > > *字符串擴展分隔符* → **#** [字符串擴展分隔符](./02_Lexical_Structure.md#extended-string-literal-delimiter)<sub>可選</sub> > > *引用文本* → [引用文本項](./02_Lexical_Structure.md#quoted-text-item) [引用文本](#quoted-text)<sub>可選</sub> > > *引用文本項* → [轉義字符](./02_Lexical_Structure.md#escaped-character) > > *引用文本項* → 除了 **"**、**\\\**、U+000A、U+000D 以外的所有 Unicode 字符 > > *多行引用文本* → [多行引用文本項](./02_Lexical_Structure.md#multiline-quoted-text-item) [多行引用文本](./02_Lexical_Structure.md#multiline-quoted-text)<sub>可選</sub> > > *多行引用文本項* [轉義字符](./02_Lexical_Structure.md#escaped-character)<sub>可選</sub> > > *多行引用文本* → 除了 **\\** 以外的任何 Unicode 標量值 > > *多行引用文本* → [轉義換行](./02_Lexical_Structure.md#escaped-newline) > *插值字符串字面量* → [字符串開分隔定界符](./02_Lexical_Structure.md#extended-string-literal-delimiter) [插值文本](./02_Lexical_Structure.md#interpolated-text)<sub>可選</sub> [字符串閉分隔定界符](./02_Lexical_Structure.md#extended-string-literal-delimiter) > > *插值字符串字面量* → [多行字符串開分隔定界符](./02_Lexical_Structure.md#extended-string-literal-delimiter) [插值文本](./02_Lexical_Structure.md#interpolated-text)<sub>可選</sub> [多行字符串閉分隔定界符](./02_Lexical_Structure.md#extended-string-literal-delimiter) > > *插值文本* → [插值文本項](./02_Lexical_Structure.md#interpolated-text-item) [插值文本](./02_Lexical_Structure.md#interpolated-text)<sub>可選</sub> > > *插值文本項* → **\\**(**[表達式](./04_Expressions.md)**) | [引用文本項](./02_Lexical_Structure.md#quoted-text-item) > > *多行插值文本* → [多行插值文本項](./02_Lexical_Structure.md#multiline-quoted-text-item) [多行插值文本](./02_Lexical_Structure.md#multiline-quoted-text)<sub>可選</sub> > > *多行插值文本項* → **\\(** [表達式](./04_Expressions.md) **)** | [多行引用文本項](./02_Lexical_Structure.md#multiline-quoted-text-item) > > *轉義序列* → **\\** [字符串擴展分隔符](./02_Lexical_Structure.md#extended-string-literal-delimiter) > > *轉義字符* → [轉義序列](./02_Lexical_Structure.md#escape-sequence) **0** | [轉義序列](./02_Lexical_Structure.md#escape-sequence) **\\** | [轉義序列](./02_Lexical_Structure.md#escape-sequence) **t** | [轉義序列](#escape-sequence) **n** | [轉義序列](./02_Lexical_Structure.md#escape-sequence) **r** | [轉義序列](./02_Lexical_Structure.md#escape-sequence) **\"** | [轉義序列](./02_Lexical_Structure.md#escape-sequence) **'** > > *轉義字符* → [轉義序列](./02_Lexical_Structure.md#escape-sequence) **u {** [unicode 標量數字](./02_Lexical_Structure.md#unicode-scalar-digits) **}** > > *unicode 標量數字* → 一到八位的十六進制數字 > > *轉義換行符* → [轉義序列](./02_Lexical_Structure.md#escape-sequence) [空白](./02_Lexical_Structure.md#whitespace)<sub>可選</sub> [換行符](./02_Lexical_Structure.md#line-break) <!-- --> > 運算符語法語法 > > *運算符* → [運算符頭](./02_Lexical_Structure.md#operator-character) [運算符字符集](./02_Lexical_Structure.md#operator)<sub>可選</sub> > > *運算符* → [點運算符頭](./02_Lexical_Structure.md#dot-operator-head) [點運算符字符集](./02_Lexical_Structure.md#dot-operator-characters)<sub>可選</sub> > > *運算符字符* → **/** | **=** | **-** | **+** | **!** | **&#42;** | **%** | **<** | **>** | **&** | **|** | **^** | **~** | **?** > > *運算符頭* → 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 > > *運算符字符* → [運算符頭](./02_Lexical_Structure.md#operator-head) > > *運算符字符* → U+0300–U+036F > > *運算符字符* → U+1DC0–U+1DFF > > *運算符字符* → U+20D0–U+20FF > > *運算符字符* → U+FE00–U+FE0F > > *運算符字符* → U+FE20–U+FE2F > > *運算符字符* → U+E0100–U+E01EF > > *運算符字符集* → [運算符字符](./02_Lexical_Structure.md#operator-character) [運算符字符集](./02_Lexical_Structure.md#operator-characters)<sub>可選</sub> > > *點運算符頭* → **..** > > *點運算符字符* → **.** | [運算符字符](./02_Lexical_Structure.md#operator-character) > > *點運算符字符集* → [點運算符字符](./02_Lexical_Structure.md#dot-operator-character) [點運算符字符集](./02_Lexical_Structure.md#dot-operator-characters)<sub>可選</sub> > > *二元運算符* → [運算符](./02_Lexical_Structure.md#operator) > > *前置運算符* → [運算符](./02_Lexical_Structure.md#operator) > > *后置運算符* → [運算符](./02_Lexical_Structure.md#operator) > ## 類型 {#types} > 類型語法 > > *類型* → [數組類型](./03_Types.md#array-type) > > *類型* → [字典類型](./03_Types.md#dictionary-type) > > *類型* → [函數類型](./03_Types.md#function-type) > > *類型* → [類型標識符](./03_Types.md#type-identifier) > > *類型* → [元組類型](./03_Types.md./03_Types.md#tuple-type) > > *類型* → [可選類型](./03_Types.md#optional-type) > > *類型* → [隱式解析可選類型](./03_Types.md#implicitly-unwrapped-optional-type) > > *類型* → [協議合成類型](./03_Types.md#protocol-composition-type) > > *類型* → **Any** > > *類型* → **Self** > > *類型* → **(** [type](./03_Types.md#metatype-type) **)** <!-- --> > 類型注解語法 > > *類型注解* → **:** [屬性(Attributes)集](./07_Attributes.md#attributes)<sub>可選</sub>[類型](./03_Types.md#type) <!-- --> > 類型標識語法 > > *類型標識* → [類型名稱](./03_Types.md#type-name) [泛型參數從句](./09_Generic_Parameters_and_Arguments.md#generic-argument-clause)<sub>可選</sub>| [類型名稱](./03_Types.md#type-name) [泛型參數從句](./09_Generic_Parameters_and_Arguments.md#generic-argument-clause)<sub>可選</sub>**.** [類型標識符](./03_Types.md#type-identifier) > > *類型名* → [標識符](./02_Lexical_Structure.md#identifier) > <!-- --> > 元組類型語法 > > *元組類型* → **(** **)** | **(** [元組類型元素](./03_Types.md#tuple-type-element) **,** [元組類型元素列表](./03_Types.md#tuple-type-element-list) **)** > > *元組類型元素列表* → [元組類型元素](./03_Types.md#tuple-type-element) | [元組類型元素](./03_Types.md#tuple-type-element) **,** [元組類型元素列表](./03_Types.md#tuple-type-element-list) > > *元組類型元素* → [元素名](./03_Types.md#element-name) [類型注解](./03_Types.md#type-annotation) | [類型](./03_Types.md#type) > > *元素名* → [標識符](./02_Lexical_Structure.md#identifier) <!-- --> > 函數類型語法 > > *函數類型* → [類型](./03_Types.md#type) **throws**<sub>可選</sub>**->** [類型](./03_Types.md#type) > > *函數類型* → [類型](./03_Types.md#) **rethrows** **->** [類型](./03_Types.md#) > > *函數類型子句* → **(** **)** > > *函數類型子句* → **(** [函數類型參數列表](./03_Types.md#function-type-argument-list) *...*-<sub>可選</sub> **)** > > *函數類型參數列表* → [函數類型參數](./03_Types.md#function-type-argument) | [函數類型參數](function-type-argument), [函數類型參數列表](./03_Types.md#function-type-argument-list) > > *函數類型參數* → [特性列表](./07_Attributes.md#attributes)<sub>可選</sub> **輸入輸出參數**<sub>可選</sub> [類型](#type) | [參數標簽](#argument-label) [類型注解](#type-annotation) > > *參數標簽* → [標識符](./02_Lexical_Structure.md#identifier) <!-- --> > 數組類型語法 > > *數組類型* → **[** [*類型*](./03_Types.md#array-type) **]** <!-- --> > 字典類型語法 > > *字典類型* → **[** [類型 **:** 類型](./03_Types.md#type) **]** <!-- --> > 可選類型語法 > > *可選類型* → [類型](./03_Types.md#type) **?** > <!-- --> > 隱式解析可選類型(Implicitly Unwrapped Optional Type)語法 > > *隱式解析可選類型* → [類型](./03_Types.md#type) **!** > <!-- --> > 協議合成類型語法 > > *協議合成類型* → [類型標識符](./03_Types.md#type-identifier) | [協議合成延續](./03_Types.md#protocol-composition-continuation) > > *協議持續延續* → [類型標識符](./03_Types.md#type-identifier) | [協議合成類型](./03_Types.md#protocol-composition-type) <!-- --> > 元(Metatype)類型語法 > > *元類型* → [類型](./03_Types.md#type) **.** **Type** | [類型](./03_Types.md#type) **.** **Protocol** <!-- --> > 類型繼承從句語法 > > *類型繼承從句* → **:** [類型繼承集](./03_Types.md#type-inheritance-list) > > *類型繼承集* → [類型標識符](./03_Types.md#type-identifier) | [類型標識符](./03_Types.md#type-identifier) **,** [類型繼承集](./03_Types.md#type-inheritance-list) > > *類條件* → **class** ## 表達式 {#expressions} > 表達式語法 > > *表達式* → [try 運算符](./04_Expressions.md#try-operator)<sub>可選</sub> [前綴表達式](./04_Expressions.md#prefix-expression) [二元表達式列表](./04_Expressions.md#binary-expressions) > > *表達式列表* → [表達式](./04_Expressions.md#expression)|[表達式](./04_Expressions.md#expression), [表達式列表](./04_Expressions.md#expression-list) > <!-- --> > 前綴表達式語法 > > *前綴表達式* → [前綴操作符]()<sub>可選</sub> [前綴表達式](./04_Expressions.md#prefix-expression) > > *前綴表達式* → [輸入輸出表達式](./04_Expressions.md#in-out-expression) > > *輸入輸出表達式* → **&** [標識符](./02_Lexical_Structure.md#identifier) > <!-- --> >try 表達式語法 > > *try 操作符* → **try** | **try ? ** | ** try ! ** > <!-- --> > 二元表達式語法 > > *二元表達式* → [二元運算符](./02_Lexical_Structure.md#binary-operator) [前綴表達式](./04_Expressions.md#prefix-expression) > > *二元表達式* → [賦值操作符](./06_Declarations.md#class-declaration) [try 運算符](./04_Expressions.md#try-operator)<sub>可選</sub> [前綴表達式](./04_Expressions.md#prefix-expression) > > *二元表達式* → [條件運算符](./04_Expressions.md#conditional-operator) [try 運算符](./04_Expressions.md#try-operator)<sub>可選</sub> [前綴表達式](./04_Expressions.md#prefix-expression) > > *二元表達式* → [類型轉換運算符](./04_Expressions.md#type-casting-operator) > > *二元表達式* → [二元表達式](./04_Expressions.md#binary-expression) [二元表達式列表](./04_Expressions.md#binary-expressions)<sub>可選</sub> > <!-- --> > 賦值操作符語法 > > *賦值運算符* → [=] > <!-- --> > 條件運算符 > > *條件運算符* → [?] [表達式](./04_Expressions.md#expression): > 類型轉換運算符語法 > > *類型轉換運算符* → [is] [類型](./03_Types.md#type) > > *類型轉換運算符* → [as] [類型](./03_Types.md#type) > > *類型轉換運算符* → [as ?] [類型](./03_Types.md#type) > > *類型轉換運算符* → [as !] [類型](./03_Types.md#type) > <!-- --> > 基礎表達式語法 > > *基礎表達式* → [標識符](./02_Lexical_Structure.md#identifier) [泛型實參子句](./09_Generic_Parameters_and_Arguments.md#generic-argument-clause)<sub>可選</sub> > > *基礎表達式* → [字面量表達式](./04_Expressions.md#literal-expression) > > *基礎表達式* → [self 表達式](./04_Expressions.md#self-expression) > > *基礎級表達式* → [父類表達式](./04_Expressions.md#superclass-expression) > > *基礎表達式* → [閉包表達式](./04_Expressions.md#closure-expression) > > *基礎表達式* → [圓括號表達式](./04_Expressions.md#parenthesized-expression) > > *基礎表達式* → [元組表達式](./04_Expressions.md#Tuple-Expression) > > *基礎表達式* → [隱式成員表達式](./04_Expressions.md#implicit-member-expression) > > *基礎表達式* → [通配符表達式](./04_Expressions.md#wildcard-expression) > > *基礎表達式* → [key-path表達式](./04_Expressions.md#key-path-expression) > > *基礎表達式* → [選擇器表達式](./04_Expressions.md#selector-expression) > > *基礎表達式* → [key-path 字符串表達式](./04_Expressions.md#key-patch-string-expression) <!-- --> > 字面量表達式語法 > > *字面量表達式* → [字面量](./04_Expressions.md#literal-expression) > > *字面量表達式* → [數組字面量](./04_Expressions.md#array-literal) | [字典字面量](./04_Expressions.md#dictionary-literal) | [練習場字面量](./04_Expressions.md#playground-literal) > > *字面量表達式* → **#file** | **#filePath** | **#line** | **#column** | **#function** | **dsohandle** > >*數組字面量* → **[** [數組字面量項列表](./04_Expressions.md#array-literal-items)<sub>可選</sub> **]** > *數組字面量項列表* → [數組字面量項](./04_Expressions.md#array-literal-item)<sub>可選</sub> | [數組字面量項](./04_Expressions.md#array-literal-item),[數組字面量項列表](./04_Expressions.md#array-literal-items) > *數組字面量項* → [表達式](./04_Expressions.md#expression) > > >*字典字面量* → [[字典字面量項列表](./04_Expressions.md#dictionary-literal-items) **]** | **[** **:** **]** > > > *字典字面量項列表* → [字典字面量項](./04_Expressions.md#dictionary-literal-item) ,**<sub>可選</sub> | [字典字面量項](./04_Expressions.md#dictionary-literal-item) ,[字典字面量項列表](./04_Expressions.md#dictionary-literal-items) > >*字典字面量項* → [表達式](./04_Expressions.md#expression) **:** [表達式](./04_Expressions.md#expression) > > > *palyground 字面量* → **#colorLiteral ( red : [表達式](./04_Expressions.md#expression) , green :[表達式](./04_Expressions.md#expression), blue :[表達式](./04_Expressions.md#expression) , alpha : [表達式](./04_Expressions.md#expression) )** > >*playground 字面量* → **#fileLiteral ( resourceName : [表達式](#expression) )** > >*playground 字面量* → **#imageLiteral ( resourceName : [表達式](#expression) ) > <!-- --> > self 表達式語法 > > *self 表達式* → **self** | [self 方法表達式](./04_Expressions.md#self-method-expression) | [self 下標表達式](./04_Expressions.md#self-subscript-expression) | [self 構造器表達式](./04_Expressions.md#self-initializer-expression) > > > *self 方法表達式* → **self** **.** [標識符](./02_Lexical_Structure.md#identifier) > > *self 下標表達式* → **self** **[** [函數調用參數表](./04_Expressions.md#function-call-argument-list-) **]** > > *self 構造器表達式* → **self** **.** **init** <!-- --> > 父類表達式語法 > > *父類表達式* → [父類方法表達式](./04_Expressions.md#superclass-method-expression) | [父類下標表達式](./04_Expressions.md#superclass-subscript-expression) | [父類構造器表達式](./04_Expressions.md#superclass-initializer-expression) > > *父類方法表達式* → **super** **.** [標識符](./02_Lexical_Structure.md#identifier) > > *父類下標表達式* → **super** [[函數調用參數表](./04_Expressions.md#function-call-argument-list-) **]** > > *父類構造器表達式* → **super** **.** **init** > <!-- --> > 閉包表達式語法 > > *閉包表達式* → **{** [閉包簽名](./04_Expressions.md#closure-signature)<sub>可選</sub> [語句](./04_Expressions.md#statements) **}** > > > 閉包簽名* → [參數子句](./04_Expressions.md#parameter-clause) [函數結果](./06_Declarations.md#function-result)<sub>可選</sub> **in** > > *閉包簽名* → [標識符列表](./04_Expressions.md#identifier-list) [函數結果](./06_Declarations.md#function-result)<sub>可選</sub> **in** > > > *閉包參數子句* **(** **)** | **(** [閉包參數列表](./04_Expressions.md#closure-parameter-list) | [標識符列表](./04_Expressions.md#identifier-list) **)** > > *閉包參數列表* [閉包參數](./04_Expressions.md#implicit-member-expression) | [閉包參數](./04_Expressions.md#implicit-member-expression), [閉包參數列表](./04_Expressions.md#implicit-member-expression) > > *閉包參數* [閉包參數名](./04_Expressions.md#implicit-member-expression) [類型聲明](./03_Types.md#type-annotation) <sub>可選</sub> > > *閉包參數* [閉包參數名](./04_Expressions.md#implicit-member-expression) [類型聲明](./03_Types.md#type-annotation) **...** > > *閉包參數名* [標識符](./02_Lexical_Structure.md#identifier) > > > *捕獲列表* → [捕獲列表](./04_Expressions.md#capture-list) **[** [捕獲列表項列表](./04_Expressions.md#capture-list-items) **]** > > *捕獲列表項列表* → [捕獲列表項](./04_Expressions.md#capture-list-item) | [捕獲列表項](./04_Expressions.md#capture-list-item) **,** [捕獲列表項列表](./04_Expressions.md#capture-list-items) > > *捕獲列表項* → [捕獲說明符](./04_Expressions.md#capture-specifier)<sub>可選</sub> [*表達式*](./04_Expressions.md#expression) > > *捕獲說明符* → **weak** | **unowned** | **unowned(safe)** | **unowned(unsafe)** > <!-- --> > 隱式成員表達式語法 > > *隱式成員表達式* → **.** [標識符](./02_Lexical_Structure.md#identifier) > <!-- --> > 圓括號表達式語法 > > *圓括號表達式* → **( [表達式](./04_Expressions.md#expression) )** > <!-- --> > 元組表達式語法 > > *元組表達式* → **( )** | **(**[元組元素](./04_Expressions.md#tuple-element), [元組元素列表](./04_Expressions.md#tuple-element-list) **)** > > *元組元素列表* → [元組元素](./04_Expressions.md#tuple-element) | [元組元素](./04_Expressions.md#tuple-element) **,** [元組元素列表](./04_Expressions.md#tuple-element-list) > *元組元素* → [表達式](./04_Expressions.md#expression) | [標識符](./04_Expressions.md#identifier) **:** [表達式](./04_Expressions.md##expression) > <!-- --> > 通配符表達式語法 > > *通配符表達式* → **_** > <!-- --> > key-path表達式語法 > > *key-path 表達式* → **\** [類型](./03_Types.md#type)<sub>可選</sub> **.** [多個 key-path 組件] > *多個 key-path 組件* → [key-path 組件](./04_Expressions.md#key-path-component) | [key-path 組件](./04_Expressions.md#key-path-component) **.** [多個 key-path 組件](./04_Expressions.md#key-path-components) > *key-path 組件* → [標識符](./02_Lexical_Structure.md#identifier) [多個 key-path 后綴](./04_Expressions.md#key-path-postfixes)<sub>可選<sub> | [多個 key-path 后綴](./04_Expressions.md#key-path-postfixes) > *多個 key-path 后綴* → [key-path 后綴](./04_Expressions.md#key-path-postfix) [多個 key-path 后綴](./04_Expressions.md#key-path-postfixes)<sub>可選<sub> key-path-postfixes {./04_Expressions.md#key-path-postfixes} > > *key-path 后綴* → **?** | **!** | **self** | **\[** [函數調用參數表](./04_Expressions.md#function-call-argument-list) **\]** > <!-- --> > 選擇器表達式語法 > > *選擇器表達式* → **#selector** **(** [*表達式*](./04_Expressions.md#expression) **)** > > *選擇器表達式* → **#selector** **(** [*getter:表達式*](./04_Expressions.md#expression) **)** > > *選擇器表達式* → **#selector** **(** [*setter:表達式*](./04_Expressions.md#expression) **)** > <!-- --> > key-path 字符串表達式語法 > *key-path 字符串表達式* → **#keyPath (** [表達式](./04_Expressions.md#expression) **)** > <!-- --> > 后綴表達式表達式語法 > > *后綴表達式* → [基本表達式](./04_Expressions.md#primary-expression) > > *后綴表達式* → [后綴表達式](./04_Expressions.md#postfix-expression) [后綴運算符](02_Lexical_Structure.md#postfix-operator) > > *后綴表達式* → [函數調用表達式](./04_Expressions.md#function-call-expression) > > *后綴表達式* → [構造器表達式](./04_Expressions.md#initializer-expression) > > *后綴表達式* → [顯式成員表達式](./04_Expressions.md#explicit-member-expression) > > *后綴表達式* → [后綴 self 表達式](./04_Expressions.md#postfix-self-expression) > > *后綴表達式* → [下標表達式](./04_Expressions.md#subscript-expression) > > *后綴表達式* → [強制取值表達式](./04_Expressions.md#forced-value-expression) > > *后綴表達式* → [可選鏈表達式](./04_Expressions.md#optional-chaining-expression) > <!-- --> > 函數調用表達式語法 > > *函數調用表達式* → [后綴表達式](./04_Expressions.md#postfix-expression) [函數調用參數子句](./04_Expressions.md#function-call-argument-clause) > > *函數調用表達式* → [后綴表達式](./04_Expressions.md#postfix-expression) [函數調用參數子句](./04_Expressions.md#function-call-argument-clause)<sub>可選</sub> [尾隨閉包](./04_Expressions.md#trailing-closure) > > *函數調用參數子句* → **(** **)** | **(** [函數調用參數表](./04_Expressions.md#function-call-argument-list) **)** > > *函數調用參數表* → [函數調用參數](./04_Expressions.md#function-call-argument) | [函數調用參數](./04_Expressions.md#function-call-argument) **,** [函數調用參數表](./04_Expressions.md#function-call-argument-list) > > *函數調用參數* → [表達式](./04_Expressions.md#expression) | [標識符](02_Lexical_Structure.md#identifier) **:** [表達式](./04_Expressions.md#expression) > > *函數調用參數* → [運算符](./02_Lexical_Structure.md#operator) | [標識符](./02_Lexical_Structure.md#identifier) **:** [運算符](./02_Lexical_Structure.md#operator) > > *尾隨閉包* → [閉包表達式](./04_Expressions.md#closure-expression) [標簽尾隨閉包]()<sub>可選</sub> > > *標簽尾隨閉包集*→ [標簽尾隨閉包](./04_Expressions.md#labeled-trailing-closure) [標簽尾隨閉包集](./04_Expressions.md#labeled-trailing-closures) > > *標簽尾隨閉包*→ [標識符](./02_Lexical_Structure.md#identifier) **:** [閉包表達式](./04_Expressions.md#closure-expression) <!-- --> > 初始化表達式語法 > > *構造器表達式* → [后綴表達式](./04_Expressions.md#postfix-expression) **.** **init** > > *構造器表達式* → [后綴表達式](./04_Expressions.md#postfix-expression) **.** **init** **(** [參數名稱](./04_Expressions.md#argument-names) **)** > <!-- --> > 顯式成員表達式語法 > > *顯式成員表達式* → [后綴表達式](./04_Expressions.md#postfix-expression) **.** [十進制數字] (02_Lexical_Structure.md#decimal-digit) > > *顯式成員表達式* → [后綴表達式](./04_Expressions.md#postfix-expression) **.** [標識符](02_Lexical_Structure.md#identifier) [泛型實參子句](./09_Generic_Parameters_and_Arguments.md#generic-argument-clause)<sub>可選</sub><br/> > > *顯式成員表達式* → [后綴表達式](./04_Expressions.md#postfix-expression) **.** [標識符] (02_Lexical_Structure.md#identifier) **(** [參數名稱](./04_Expressions.md#argument-names) **)** > > *參數名稱* → [參數名](./04_Expressions.md#argument-name) [參數名稱](./04_Expressions.md#argument-names)<sub>可選</sub><br/> > > *參數名* → [標識符](./02_Lexical_Structure.md#identifier) **:** > <!-- --> > 后綴 self 表達式語法 > > *后綴 self 表達式* → [后綴表達式](./04_Expressions.md#postfix-expression) **.** **self** > <!-- --> > 下標表達式語法 > > *下標表達式* → [后綴表達式](./04_Expressions.md#postfix-expression) **[** [表達式列表](./04_Expressions.md#expression-list) **]** > <!-- --> > 強制取值表達式語法 > *強制取值表達式* → [后綴表達式](./04_Expressions.md#postfix-expression) **!** > <!-- --> > 可選鏈式表達式語法 > *可選鏈表達式* → [后綴表達式](./04_Expressions.md#postfix-expression) **?** > ## 語句 {#statements} > 語句語法 > > *語句* → [表達式](./04_Expressions.md#expression) **;**<sub>可選</sub> > > *語句* → [聲明](./06_Declarations.md#declaration) **;**<sub>可選</sub> > > *語句* → [循環語句](./05_Statements.md#loop-statement) **;**<sub>可選</sub> > > *語句* → [分支語句](./05_Statements.md#branch-statement) **;**<sub>可選</sub> > > *語句* → [標簽語句](./05_Statements.md#labeled-statement) **;**<sub>可選</sub> > > *語句* → [控制轉移語句](./05_Statements.md#control-transfer-statement) **;**<sub>可選</sub> > > *語句* → [延遲語句](./05_Statements.md#defer-statement) **;**<sub>可選</sub> > > *語句* → [執行語句](./05_Statements.md#do-statement) **;**<sub>可選</sub> > > *語句* → [編譯控制語句](./05_Statements.md#compiler-control-statement) > > *語句集* → [語句](./05_Statements.md#statement) [語句集](./05_Statements.md#statements)<sub>可選</sub> > <!-- --> > 循環語句語法 > > *循環語句* → [for-in 語句](./05_Statements.md#for-in-statement) > > *循環語句* → [while 語句](./05_Statements.md#wheetatype 類型 ile-statement) > > *循環語句* → [repeat-while 語句](./05_Statements.md#do-while-statement) > <!-- --> > For-In 循環語法 > > *for-in 語句* → **for case**<sub>可選</sub> [模式](./08_Patterns.md#pattern) **in** [表達式](./04_Expressions.md#expression) [where 子句](./05_Statements.md#where-clause)<sub>可選</sub> [代碼塊](./06_Declarations.md#code-block) > <!-- --> > While 循環語法 > > *while 語句* → **while** [條件集](./05_Statements.md#condition-list) [代碼塊](./06_Declarations.md#code-block) > > *條件集* → [條件](./05_Statements.md#condition) | [條件](./05_Statements.md#condition) **,** [條件集](./05_Statements.md#condition-list) > *條件* → [表達式](./04_Expressions.md#expression) | [可用性條件](./05_Statements.md#availability-condition) | [case 條件](./05_Statements.md#case-condition) | [可選綁定條件](./05_Statements.md#optional-binding-condition) > > *case 條件* → **case** [模式](./08_Patterns.md#pattern) [構造器](./06_Declarations.md#initializer) > > *可選綁定條件* → **let** [模式](./08_Patterns.md#pattern) [構造器](./06_Declarations.md#initializer) | **var** [模式](./08_Patterns.md#pattern) [構造器](./06_Declarations.md#initializer) > <!-- --> > Repeat-While 語句語法 > *repeat-while-statement* → **repeat** [代碼塊](./06_Declarations.md#code-block) **while** [表達式](./04_Expressions.md#expression) <!-- --> > 分支語句語法 > > *分支語句* → [if 語句](./05_Statements.md#if-statement) > > *分支語句* → [guard 語句](./05_Statements.md#guard-statement) > > *分支語句* → [switch 語句](./05_Statements.md#switch-statement) > <!-- --> > If 語句語法 > > *if 語句* → **if** [條件集](./05_Statements.md#condition-list) [代碼塊](./06_Declarations.md#code-block) [else 子句](./05_Statements.md#else-clause)<sub>可選</sub> > > *else 子句* → **else** [代碼塊](./06_Declarations.md#code-block) | **else** [if 語句](./05_Statements.md#if-statement) > <!-- --> > Guard 語句語法 > > *guard 語句* → **guard** [條件集](./05_Statements.md#condition-list) **else** [代碼塊](./06_Declarations.md#code-block) > <!-- --> > Switch 語句語法 > > *switch 語句* → **switch** [表達式](./04_Expressions.md#expression) **{** [switch-case集](./05_Statements.md#switch-cases)<sub>可選</sub> **}** > > *switch-case集* → [switch-case](./05_Statements.md#switch-case) [switch-case集](./05_Statements.md#switch-cases)<sub>可選</sub> > > *switch-case* → [case 標簽](./05_Statements.md#case-label) [語句集](./05_Statements.md#statements) > > *switch-case* → [default 標簽](./05_Statements.md#default-label) [語句集](./05_Statements.md#statements) > > *switch-case* → [條件 switch-case](./05_Statements.md#conditional-switch-case) > > *case 標簽* → [特性](./07_Attributes.md#attributes)<sub>可選</sub> **case** [case 項集](./05_Statements.md#case-item-list) **:** > > *case 項集* → [模式](./08_Patterns.md#pattern) [where 子句](./05_Statements.md#where-clause)<sub>可選</sub> | [模式](./08_Patterns.md#pattern) [where 子句](./05_Statements.md#guard-clause)<sub>可選</sub> **,** [case 項集](./05_Statements.md#case-item-list) > > *default 標簽* → [特性](./07_Attributes.md#attributes)<sub>可選</sub> **default** **:** > > *where 子句* → **where** [where 表達式](./05_Statements.md#where-expression) > > *where 表達式* → [表達式](./04_Expressions.md#expression) > > *條件 switch-case* → [switch if 指令子句](./05_Statements.md#switch-if-directive-clause) [switch elseif 指令子句集](./05_Statements.md#switch-elseif-directive-clauses)<sub>可選</sub> [switch else 指令子句](./05_Statements.md#switch-else-directive-clause)<sub>可選</sub> [endif 指令](./05_Statements.md#endif-directive) > > *switch if 指令子句* → [if 指令](./05_Statements.md#if-directive) [編譯條件](./05_Statements.md#compilation-condition) [switch-case集](./05_Statements.md#switch-cases)<sub>可選</sub> > > *switch elseif 指令子句集* → [elseif 指令子句](./05_Statements.md#else-if-directive-clause) [switch elseif 指令子句集](./05_Statements.md#switch-elseif-directive-clauses)<sub>可選</sub> > > *switch elseif 指令子句* → [elseif 指令](./05_Statements.md#elseif-directive) [編譯條件](./05_Statements.md#compilation-condition) [switch-case集](./05_Statements.md#switch-cases)<sub>可選</sub> > > *switch else 指令子句* → [else 指令](./05_Statements.md#else-directive) [switch-case集](./05_Statements.md#switch-cases)<sub>可選</sub> > <!-- --> > 標簽語句語法 > > *標簽語句* → [語句標簽](./05_Statements.md#statement-label) [循環語句](./05_Statements.md#loop-statement) > > *標簽語句* → [語句標簽](./05_Statements.md#statement-label) [if 語句](./05_Statements.md#if-statement) > > *標簽語句* → [語句標簽](./05_Statements.md#statement-label) [switch 語句](./05_Statements.md#switch-statement) > > *標簽語句* → [語句標簽](./05_Statements.md#statement-label) [do 語句](./05_Statements.md#do-statement) > > *語句標簽* → [標簽名稱](./05_Statements.md#label-name) **:** > > *標簽名稱* → [標識符](./02_Lexical_Structure.md#identifier) > <!-- --> > 控制轉移語句語法 > > *控制轉移語句* → [break 語句](./05_Statements.md#break-statement) > > *控制轉移語句* → [continue 語句](./05_Statements.md#continue-statement) > > *控制轉移語句* → [fallthrough 語句](./05_Statements.md#fallthrough-statement) > > *控制轉移語句* → [return 語句](./05_Statements.md#return-statement) > > *控制轉移語句* → [throw 語句](./05_Statements.md#throw-statement) > <!-- --> > Break 語句語法 > > *break 語句* → **break** [標簽名稱](./05_Statements.md#label-name)<sub>可選</sub> > <!-- --> > Continue 語句語法 > > *continue 語句* → **continue** [標簽名稱](./05_Statements.md#label-name)<sub>可選</sub> > <!-- --> > Fallthrough 語句語法 > > *fallthrough 語句* → **fallthrough** > <!-- --> > Return 語句語法 > > *return 語句* → **return** [表達式](./04_Expressions.md#expression)<sub>可選</sub> > <!-- --> > Throw 語句語法 > > *throw 語句* → **throw** [表達式](./04_Expressions.md#expression) > <!-- --> > Defer 語句語法 > > *defer 語句* → **defer** [代碼塊](./06_Declarations.md#code-block) > <!-- --> > Do 語句語法 > > *do 語句* → **do** [代碼塊](./06_Declarations.md#code-block) [catch 子句集](./05_Statements.md#catch-clauses)<sub>可選</sub> > > *catch 子句集* → [catch 子句](./05_Statements.md#catch-clause) [catch 子句集](05_Statements.md#catch-clauses)<sub>可選</sub> > > *catch 子句* → **catch** [catch 模式列表]()<sub>可選</sub> [代碼塊](./06_Declarations.md#code-block)<sub>可選</sub> > > *catch 模式列表* → [catch 模式](./05_Statements.md#catch-pattern) | [catch 模式](./05_Statements.md#catch-pattern) ,[catch 模式列表](./05_Statements.md#catch-pattern-list) > > *catch 模式* → [模式](./08_Patterns.md#pattern) [where 子句](./05_Statements.md#where-clause)<sub>可選</sub> <!-- --> > 編譯控制語句 > > *編譯控制語句* → [條件編譯塊](./05_Statements.md#conditional-complation-block) > > *編譯控制語句* → [行控制語句](./05_Statements.md#line-control-statement) > > *編譯控制語句* → [診斷語句](./05_Statements.md#diagnostic-statement) > <!-- --> > 條件編譯塊語法 > > *條件編譯塊* → [if 指令子句](./05_Statements.md#if-directive-clause) [elseif 指令子句集](./05_Statements.md#elseif-directive-clauses)<sub>可選</sub> [else 指令子句](./05_Statements.md#else-directive-clause)<sub>可選</sub> [endif 指令](./05_Statements.md#endif-directive) > > *if 指令子句* → [if 指令](./05_Statements.md#if-directive) [編譯條件](./05_Statements.md#compilation-condition) [語句集](./05_Statements.md#statements)<sub>可選</sub> > > *elseif 指令子句集* → [elseif 指令子句](./05_Statements.md#else-if-directive-clause) [elseif 指令子句集](./05_Statements.md#elseif-directive-clauses)<sub>可選</sub> > > *elseif 指令子句* → [elseif 指令](./05_Statements.md#elseif-directive) [編譯條件](./05_Statements.md#compilation-condition) [語句集](./05_Statements.md#statements)<sub>可選</sub> > > *else 指令子句* → [else 指令](./05_Statements.md#else-directive) [語句集](./05_Statements.md#statements)<sub>可選</sub> > > *if 指令* → **#if** > > *elseif 指令* → **#elseif** > > *else 指令* → **#else** > > *endif 指令* → **#endif** > > *編譯條件* → [平臺條件](./05_Statements.md#platform-condition) > > *編譯條件* → [標識符](./02_Lexical_Structure.md#identifier) > > *編譯條件* → [布爾字面量](./02_Lexical_Structure.md#boolean-literal) > > *編譯條件* → **(** [編譯條件](./05_Statements.md#compilation-condition) **)** > > *編譯條件* → **!** [編譯條件](./05_Statements.md#compilation-condition) > > *編譯條件* → [編譯條件](./05_Statements.md#compilation-condition) **&&** [編譯條件](./05_Statements.md#compilation-condition) > > *編譯條件* → [編譯條件](./05_Statements.md#compilation-condition) **||** [編譯條件](./05_Statements.md#compilation-condition) > > *平臺條件* → **os** **(** [操作系統](./05_Statements.md#operating-system) **)** > > *平臺條件* → **arch** **(** [架構](./05_Statements.md#architecture) **)** > > *平臺條件* → **swift** **(** **>=** [swift 版本](./05_Statements.md#swift-version) **)** | **swift** **(** **<** [swift 版本](./05_Statements.md#swift-version) **)** > > *平臺條件* → **compiler** **(** **>=** [swift 版本](./05_Statements.md#swift-version) **)** | **compiler** **(** **<** [swift 版本](./05_Statements.md#swift-version) **)** > > *平臺條件* → **canImport** **(** [模塊名](./05_Statements.md#module-name) **)** > > *平臺條件* → **targetEnvironment** **(** [環境](./05_Statements.md#environment) **)** > > *操作系統* → **macOS** | **iOS** | **watchOS** | **tvOS** > > *架構* → **i386** | **x86_64** | **arm** | **arm64** > > *swift 版本* → [十進制數字集](./02_Lexical_Structure.md#decimal-digits) [swift 版本后綴](./05_Statements.md#swift-version-continuation)<sub>可選</sub> > > *swift 版本后綴* → **.** [十進制數字集](./02_Lexical_Structure.md#decimal-digits) [swift 版本集](./05_Statements.md#swift-version-continuation)<sub>可選</sub> > > *模塊名* → [標識符](./02_Lexical_Structure.md#identifier) > > *環境* → **模擬器** | **macCatalyst** <!-- --> > 行控制語句語法 > > *行控制語句* → **#sourceLocation** **(** **file:** [文件名](./05_Statements.md#file-name) **,** **line:** [行號](./05_Statements.md#line-number) **)** > > *行控制語句* → **#sourceLocation** **(** **)** > > *行號* → 一個大于 0 的十進制數字 > > *文件名* → [靜態字符串字面量](./02_Lexical_Structure.md#static-string-literal) > <!-- --> > 編譯期診斷語句語法 > > *診斷語句* → **#error** **(** [診斷信息](./05_Statements.md#diagnostic-message) **)** > > *診斷語句* → **#warning** **(** [診斷信息](./05_Statements.md#diagnostic-message) **)** > > *診斷信息* → [靜態字符串字面量](./02_Lexical_Structure.md#static-string-literal) > <!-- --> > 可用性條件語法 > > *可用性條件* → **#available** **(** [可用性參數集](./05_Statements.md#availability-arguments) **)** > > *可用性參數集* → [可用性參數](./05_Statements.md#availability-argument) | [可用性參數](./05_Statements.md#availability-argument) , [可用性參數集)](./05_Statements.md#availability-arguments) > > *可用性參數* → [平臺名](./05_Statements.md#platform-name) [平臺版本](./05_Statements.md#platform-version) > > *可用性參數* → **\*** > > *平臺名* → **iOS** | **iOSApplicationExtension** > > *平臺名* → **macOS** | **macOSApplicationExtension** > > *平臺名* → **watchOS** > > *平臺名* → **tvOS** > > *平臺版本* → [十進制數字集](./02_Lexical_Structure.md#decimal-digits) > > *平臺版本* → [十進制數字集](./02_Lexical_Structure.md#decimal-digits) **.** [十進制數字集](./02_Lexical_Structure.md#decimal-digits) > > *平臺版本* → [十進制數字集](./02_Lexical_Structure.md#decimal-digits) **.** [十進制數字集](./02_Lexical_Structure.md#decimal-digits) **.** [十進制數字集](./02_Lexical_Structure.md#decimal-digits) > ## 聲明 {#declarations} > 聲明語法 > > *聲明* → [導入聲明](./06_Declarations.md#import-declaration) > > *聲明* → [常量聲明](./06_Declarations.md#constant-declaration) > > *聲明* → [變量聲明](./06_Declarations.md#variable-declaration) > > *聲明* → [類型別名聲明](./06_Declarations.md#typealias-declaration) > > *聲明* → [函數聲明](./06_Declarations.md#function-declaration) > > *聲明* → [枚舉聲明](./06_Declarations.md#enum-declaration) > > *聲明* → [結構體聲明](./06_Declarations.md#struct-declaration) > > *聲明* → [類聲明](./06_Declarations.md#class-declaration) > > *聲明* → [協議聲明](./06_Declarations.md#protocol-declaration) > > *聲明* → [構造器聲明](./06_Declarations.md#initializer-declaration) > > *聲明* → [析構器聲明](./06_Declarations.md#deinitializer-declaration) > > *聲明* → [擴展聲明](./06_Declarations.md#extension-declaration) > > *聲明* → [下標聲明](./06_Declarations.md#subscript-declaration) > > *聲明* → [運算符聲明](./06_Declarations.md#operator-declaration) > > *聲明* → [優先級組聲明](./06_Declarations.md#precedence-group-declaration) > > *聲明集* → [聲明](./06_Declarations.md#declaration) [聲明集](./06_Declarations.md#declarations)<sub>可選</sub> > <!-- --> > 頂級聲明語法 > > *頂級聲明* → [多條語句](./05_Statements.md#statements)<sub>可選</sub> > <!-- --> > 代碼塊語法 > > *代碼塊* → **{** [多條語句](./05_Statements.md#statements)<sub>可選</sub> **}** > <!-- --> > 導入聲明語法 > > *導入聲明* → [特性](./07_Attributes.md#attributes)<sub>可選</sub> **import** [導入類型](./06_Declarations.md#import-kind)<sub>可選</sub> [導入路徑](./06_Declarations.md#import-path) > > *導入類型* → **typealias** | **struct** | **class** | **enum** | **protocol** | **let** | **var** | **func** > > *導入路徑* → [導入路徑標識符](./06_Declarations.md#import-path-identifier) | [導入路徑標識符](./06_Declarations.md#import-path-identifier) **.** [導入路徑](./06_Declarations.md#import-path) > > *導入路徑標識符* → [標識符](./02_Lexical_Structure.md#identifier) | [運算符](./02_Lexical_Structure.md#operator) > <!-- --> > 常數聲明語法 > > *常量聲明* → [特性](./07_Attributes.md#attributes)<sub>可選</sub> [聲明修飾符集](./06_Declarations.md#declaration-specifiers)<sub>可選</sub> **let** [模式構造器集](./06_Declarations.md#pattern-initializer-list) > > *模式構造器集* → [模式構造器](./06_Declarations.md#pattern-initializer) | [模式構造器](./06_Declarations.md#pattern-initializer) **,** [模式構造器集](./06_Declarations.md#pattern-initializer-list) > > *模式構造器* → [模式](./08_Patterns.md#pattern) [構造器](./06_Declarations.md#initializer)<sub>可選</sub> > > *構造器* → **=** [表達式](./04_Expressions.md#expression) <!-- --> > 變量聲明語法 > > *變量聲明* → [變量聲明頭](./06_Declarations.md#variable-declaration-head) [模式構造器集](./06_Declarations.md#pattern-initializer-list) > > *變量聲明* → [變量聲明頭](./06_Declarations.md#variable-declaration-head) [變量名](./06_Declarations.md#variable-name) [類型注解](./03_Types.md#type-annotation) [代碼塊](./06_Declarations.md#code-block) > > *變量聲明* → [變量聲明頭](./06_Declarations.md#variable-declaration-head) [變量名](./06_Declarations.md#variable-name) [類型注解](./03_Types.md#type-annotation) [getter-setter 塊](./06_Declarations.md#getter-setter-block) > > *變量聲明* → [變量聲明頭](./06_Declarations.md#variable-declaration-head) [變量名](./06_Declarations.md#variable-name) [類型注解](./03_Types.md#type-annotation) [getter-setter 關鍵字塊](./06_Declarations.md#getter-setter-keyword-block) > > *變量聲明* → [變量聲明頭](./06_Declarations.md#variable-declaration-head) [變量名](./06_Declarations.md#variable-name) [構造器](./06_Declarations.md#initializer)<sub>可選</sub> [willSet-didSet 代碼塊](./06_Declarations.md#willSet-didSet-block) > > *變量聲明* → [變量聲明頭](./06_Declarations.md#variable-declaration-head) [變量名](./06_Declarations.md#variable-name) [類型注解](./03_Types.md#type-annotation) [構造器](./06_Declarations.md#initializer)<sub>可選</sub> [willSet-didSet 代碼塊](./06_Declarations.md#willSet-didSet-block) > > *變量聲明頭* → [特性](./07_Attributes.md#attributes)<sub>可選</sub> [聲明修飾符集](./06_Declarations.md#declaration-specifiers)<sub>可選</sub> **var** > > *變量名稱* → [標識符](./02_Lexical_Structure.md#identifier) > > *getter-setter 塊* → [代碼塊](./06_Declarations.md#code-block) > > *getter-setter 塊* → **{** [getter 子句](./06_Declarations.md#getter-keyword-clause) [setter 子句](./06_Declarations.md#setter-keyword-clause)<sub>可選</sub> **}** > > *getter-setter 塊* → **{** [setter 子句](./06_Declarations.md#setter-keyword-clause) [getter 子句](./06_Declarations.md#getter-keyword-clause) **}** > > *getter 子句* → [特性](./07_Attributes.md#attributes)<sub>可選</sub> [可變性修飾符](./06_Declarations.md#mutation-modifier)<sub>可選</sub> **get** [代碼塊](./06_Declarations.md#code-block) > > *setter 子句* → [特性](./07_Attributes.md#attributes)<sub>可選</sub> [可變性修飾符](./06_Declarations.md#mutation-modifier)<sub>可選</sub> **set** [setter 名稱](./06_Declarations.md#setter-name)<sub>可選</sub> [代碼塊](./06_Declarations.md#code-block) > > *setter 名稱* → **(** [標識符](./02_Lexical_Structure.md#identifier) **)** > > *getter-setter 關鍵字(Keyword)塊* → **{** [getter 關鍵字子句](./06_Declarations.md#getter-keyword-clause) [setter 關鍵字子句](./06_Declarations.md#setter-keyword-clause)<sub>可選</sub> **}** > > *getter-setter 關鍵字(Keyword)塊* → **{** [setter 關鍵字子句](./06_Declarations.md#setter-keyword-clause) [getter 關鍵字子句](./06_Declarations.md#getter-keyword-clause) **}** > > *getter 關鍵字(Keyword)子句* → [特性](./07_Attributes.md#attributes)<sub>可選</sub> [可變性修飾符](./06_Declarations.md#mutation-modifier)<sub>可選</sub> **get** > > *setter 關鍵字(Keyword)子句* → [特性](./07_Attributes.md#attributes)<sub>可選</sub> [可變性修飾符](./06_Declarations.md#mutation-modifier)<sub>可選</sub> **set** > > *willSet-didSet 代碼塊* → **{** [willSet 子句](./06_Declarations.md#willSet-clause) [didSet 子句](./06_Declarations.md#didSet-clause)<sub>可選</sub> **}** > > *willSet-didSet 代碼塊* → **{** [didSet 子句](./06_Declarations.md#didSet-clause) [willSet 子句](./06_Declarations.md#willSet-clause)<sub>可選</sub> **}** > > *willSet 子句* → [特性](./07_Attributes.md#attributes)<sub>可選</sub> **willSet** [setter 名稱](./06_Declarations.md#setter-name)<sub>可選</sub> [代碼塊](./06_Declarations.md#code-block) > > *didSet 子句* → [特性](./07_Attributes.md#attributes)<sub>可選</sub> > **didSet** [setter 名稱](./06_Declarations.md#setter-name)<sub>可選</sub> [代碼塊](./06_Declarations.md#code-block) <!-- --> > 類型別名聲明語法 > > *類型別名聲明* → [特性](./07_Attributes.md#attributes)<sub>可選</sub> [訪問級別修飾符](./07_Attributes.md#access-level-modifier) **typealias** [類型別名名稱](./06_Declarations.md#typealias-name) [泛型參數子句](./09_Generic_Parameters_and_Arguments.md#generic-parameter-clause)<sub>可選</sub> [類型別名賦值](./06_Declarations.md#typealias-assignment) > > *類型別名名稱* → [標識符](./02_Lexical_Structure.md#identifier) > > *類型別名賦值* → **=** [類型](./03_Types.md#type) > <!-- --> > 函數聲明語法 > > *函數聲明* → [函數頭](./06_Declarations.md#function-head) [函數名](./06_Declarations.md#function-name) [泛型參數子句](./09_Generic_Parameters_and_Arguments.md#generic-parameter-clause)<sub>可選</sub> [函數簽名](./06_Declarations.md#function-signature) [泛型 where 子句](./09_Generic_Parameters_and_Arguments.md#generic-where-clause)<sub>可選</sub> [函數體](./06_Declarations.md#function-body)<sub>可選</sub> > > *函數頭* → [特性](./07_Attributes.md#attributes)<sub>可選</sub> [聲明描述符集](./06_Declarations.md#declaration-specifiers)<sub>可選</sub> **func** > > *函數名* → [標識符](./02_Lexical_Structure.md#identifier) | [運算符](./02_Lexical_Structure.md#operator) > > *函數簽名* → [參數子句](./06_Declarations.md#parameter-clause) **throws**<sub>可選</sub> [函數結果](./06_Declarations.md#function-result)<sub>可選</sub> > > *函數簽名* → [參數子句](./06_Declarations.md#parameter-clause) **rethrows** [函數結果](./06_Declarations.md#function-result)<sub>可選</sub> > > *函數結果* → **->** [特性](./07_Attributes.md#attributes)<sub>可選</sub> [類型](./03_Types.md#type) > > *函數體* → [代碼塊](./06_Declarations.md#code-block) > > *參數子句* → **(** **)** | **(** [參數集](./06_Declarations.md#parameter-list) **)** > > *參數集* → [參數](./06_Declarations.md#parameter) | [參數](./06_Declarations.md#parameter) **,** [參數集](./06_Declarations.md#parameter-list) > > *參數* → [外部參數名](./06_Declarations.md#parameter-name)<sub>可選</sub> [本地參數名](./06_Declarations.md#local-parameter-name) [類型注解](./03_Types.md#type-annotation) [默認參數子句](./06_Declarations.md#default-argument-clause)<sub>可選</sub> > > *參數* → [外部參數名](./06_Declarations.md#parameter-name)<sub>可選</sub> [本地參數名](./06_Declarations.md#local-parameter-name) [類型注解](./03_Types.md#type-annotation) > > *參數* → [外部參數名](./06_Declarations.md#parameter-name)<sub>可選</sub> [本地參數名](./06_Declarations.md#local-parameter-name) [類型注解](./03_Types.md#type-annotation) **...** > > *外部參數名* → [標識符](./02_Lexical_Structure.md#identifier) > > *本地參數名* → [標識符](./02_Lexical_Structure.md#identifier) > > *默認參數子句* → **=** [表達式](./04_Expressions.md#expression) > <!-- --> > 枚舉聲明語法 > > *枚舉聲明* → [特性](./07_Attributes.md#attributes)<sub>可選</sub> [訪問級別修飾符](./07_Attributes.md#access-level-modifier)<sub>可選</sub> [聯合式枚舉](./06_Declarations.md#union-style-enum) > > *枚舉聲明* → [特性](./07_Attributes.md#attributes)<sub>可選</sub> [訪問級別修飾符](./07_Attributes.md#access-level-modifier)<sub>可選</sub> [原始值式枚舉](./06_Declarations.md#raw-value-style-enum) > > *聯合式枚舉* → **indirect**<sub>可選</sub> **enum** [枚舉名](./06_Declarations.md#enum-name) [泛型參數子句](./09_Generic_Parameters_and_Arguments.md#generic-parameter-clause)<sub>可選</sub> [類型繼承子句](./03_Types.md#type-inheritance-clause)<sub>可選</sub> [泛型 where 子句](./09_Generic_Parameters_and_Arguments.md#generic-where-clause)<sub>可選</sub> **{** [聯合式枚舉成員](./06_Declarations.md#union-style-enum-members)<sub>可選</sub> **}** > > *聯合式枚舉成員集* → [聯合式枚舉成員](./06_Declarations.md#union-style-enum-member) [聯合樣式枚舉成員集](./06_Declarations.md#union-style-enum-members)<sub>可選</sub> > > *聯合樣式枚舉成員* → [聲明](./06_Declarations.md#declaration) | [聯合式枚舉 case 子句](./06_Declarations.md#union-style-enum-case-clause) | [編譯控制語句](./05_Statements.md#compiler-control-statement) > > *聯合式枚舉 case 子句* → [特性](./07_Attributes.md#attributes)<sub>可選</sub> **indirect**<sub>可選</sub> **case** [聯合式枚舉 case 集](./06_Declarations.md#union-style-enum-case-list) > > *聯合式枚舉 case 集* → [聯合式枚舉 case](./06_Declarations.md#union-style-enum-case) | [聯合式枚舉 case](./06_Declarations.md#union-style-enum-case) **,** [聯合式枚舉 case 集](./06_Declarations.md#union-style-enum-case-list) > > *聯合式枚舉 case* → [枚舉的 case 名](./06_Declarations.md#enum-case-name) [元組類型](./03_Types.md#tuple-type)<sub>可選</sub> > > *枚舉名* → [標識符](./02_Lexical_Structure.md#identifier) > > *枚舉的 case 名* → [標識符](./02_Lexical_Structure.md#identifier) > > *原始值式枚舉* → **enum** [枚舉名](./06_Declarations.md#enum-name) [泛型參數子句](./09_Generic_Parameters_and_Arguments.md#generic-parameter-clause)<sub>可選</sub> [類型繼承子句](./03_Types.md#type-inheritance-clause) [泛型 where 子句](./09_Generic_Parameters_and_Arguments.md#generic-where-clause)<sub>可選</sub> **{** [原始值式枚舉成員集](./06_Declarations.md#raw-value-style-enum-members) **}** > > *原始值式枚舉成員集* → [原始值式枚舉成員](./06_Declarations.md#raw-value-style-enum-member) [原始值式枚舉成員集](./06_Declarations.md#raw-value-style-enum-members)<sub>可選</sub> > > *原始值式枚舉成員* → [聲明](./06_Declarations.md#declaration) | [原始值式枚舉 case 子句](./06_Declarations.md#raw-value-style-enum-case-clause) | [編譯控制語句](./05_Statements.md#compiler-control-statement) > > *原始值式枚舉 case 子句* → [特性](./07_Attributes.md#attributes)<sub>可選</sub> **case** [原始值式枚舉 case 集](./06_Declarations.md#raw-value-style-enum-case-list) > > *原始值式枚舉 case 集* → [原始值式枚舉 case](./06_Declarations.md#raw-value-style-enum-case) | [原始值式枚舉 case](./06_Declarations.md#raw-value-style-enum-case) **,** [原始值式枚舉 case 集](./06_Declarations.md#raw-value-style-enum-case-list) > > *原始值式枚舉 case* → [枚舉的 case 名](./06_Declarations.md#enum-case-name) [原始值賦值](./06_Declarations.md#raw-value-assignment)<sub>可選</sub> > > *原始值賦值* → **=** [原始值字面量](./02_Lexical_Structure.md#literal) > > *原始值字面量(raw-value-literal)* → [數值字面量](./02_Lexical_Structure.md#literal) | [靜態字符串字面量](./02_Lexical_Structure.md#literal) | [布爾字面量](./02_Lexical_Structure.md#literal) > <!-- --> > 結構體聲明語法 > > *結構體聲明* → [特性](./07_Attributes.md#attributes)<sub>可選</sub> [訪問級別修飾符](./07_Attributes.md#access-level-modifier)<sub>可選</sub> **struct** [結構體名稱](./06_Declarations.md#struct-name) [泛型參數子句](./09_Generic_Parameters_and_Arguments.md#generic-parameter-clause)<sub>可選</sub> [類型繼承子句](./03_Types.md#type-inheritance-clause)<sub>可選</sub> [泛型 where 子句](./09_Generic_Parameters_and_Arguments.md#generic-where-clause)<sub>可選</sub> [結構體主體](./06_Declarations.md#struct-body) > > *結構體名稱* → [標識符](./02_Lexical_Structure.md#identifier) > > *結構體主體* → **{** [結構體成員集](./06_Declarations.md#declarations)<sub>可選</sub> **}** > > *結構體成員集* → [結構體成員](./06_Declarations.md#declarations) [結構體成員集](./06_Declarations.md#declarations)<sub>可選</sub> > > *結構體成員* → [聲明集](./06_Declarations.md#declarations) | [編譯控制語句](./05_Statements.md#compiler-control-statement) > <!-- --> > 類聲明語法 > > *類聲明* → [特性](./07_Attributes.md#attributes)<sub>可選</sub> [訪問級別修飾符](./07_Attributes.md#access-level-modifier)<sub>可選</sub> **final**<sub>可選</sub> **class** [類名](./06_Declarations.md#class-name) [泛型參數子句](./09_Generic_Parameters_and_Arguments.md#generic-parameter-clause)<sub>可選</sub> [類型繼承子句](./03_Types.md#type-inheritance-clause) [泛型 where 子句](./09_Generic_Parameters_and_Arguments.md#generic-where-clause)<sub>可選</sub> [類主體](./06_Declarations.md#class-body) > > *類聲明* → [特性](./07_Attributes.md#attributes)<sub>可選</sub> **final** [訪問級別修飾符](./07_Attributes.md#access-level-modifier)<sub>可選</sub> **class** [類名](./06_Declarations.md#class-name) [泛型參數子句](./09_Generic_Parameters_and_Arguments.md#generic-parameter-clause)<sub>可選</sub> [類型繼承子句](./03_Types.md#type-inheritance-clause) [泛型 where 子句](./09_Generic_Parameters_and_Arguments.md#generic-where-clause)<sub>可選</sub> [類主體](./06_Declarations.md#class-body) > > *類名* → [標識符](./02_Lexical_Structure.md#identifier) > > *類主體* → **{** [類成員集](./06_Declarations.md#declarations)<sub>可選</sub> **}** > > *類成員集* → [類成員](./06_Declarations.md#declarations) [類成員集](./06_Declarations.md#declarations)<sub>可選</sub> > > *類成員* → [聲明集](./06_Declarations.md#declarations) | [編譯控制語句](./05_Statements.md#compiler-control-statement) > <!-- --> > 協議聲明語法 > > *協議聲明* → [特性](./07_Attributes.md#attributes)<sub>可選</sub> [訪問級別修飾符](./07_Attributes.md#access-level-modifier)<sub>可選</sub> **protocol** [協議名](./06_Declarations.md#protocol-name) [類型繼承子句](./03_Types.md#type-inheritance-clause)<sub>可選</sub> [泛型 where 子句](./09_Generic_Parameters_and_Arguments.md#generic-where-clause)<sub>可選</sub> [協議主體](./06_Declarations.md#protocol-body) > > *協議名* → [標識符](./02_Lexical_Structure.md#identifier) > > *協議主體* → **{** [協議成員集](./06_Declarations.md#protocol-member-declarations)<sub>可選</sub> **}** > > *協議成員集* → [協議成員](./06_Declarations.md#declarations) [協議成員集](./06_Declarations.md#declarations)<sub>可選</sub> > > *協議成員* → [協議成員聲明](./06_Declarations.md#declarations) | [編譯控制語句](./05_Statements.md#compiler-control-statement) > > *協議成員聲明* → [協議屬性聲明](./06_Declarations.md#protocol-property-declaration) > > *協議成員聲明* → [協議方法聲明](./06_Declarations.md#protocol-method-declaration) > > *協議成員聲明* → [協議構造器聲明](./06_Declarations.md#protocol-initializer-declaration) > > *協議成員聲明* → [協議下標聲明](./06_Declarations.md#protocol-subscript-declaration) > > *協議成員聲明* → [協議關聯類型聲明](./06_Declarations.md#protocol-associated-type-declaration) > > *協議成員聲明* → [類型別名聲明](./06_Declarations.md#typealias-declaration) > <!-- --> > 協議屬性聲明語法 > > *協議屬性聲明* → [變量聲明頭](./06_Declarations.md#variable-declaration-head) [變量名](./06_Declarations.md#variable-name) [類型注解](./03_Types.md#type-annotation) [getter-setter 關鍵字塊](./06_Declarations.md#getter-setter-keyword-block) > <!-- --> > 協議方法聲明語法 > > *協議方法聲明* → [函數頭](./06_Declarations.md#function-head) [函數名](./06_Declarations.md#function-name) [泛型參數子句](./09_Generic_Parameters_and_Arguments.md#generic-parameter-clause)<sub>可選</sub> [函數簽名](./06_Declarations.md#function-signature) [泛型 where 子句](./09_Generic_Parameters_and_Arguments.md#generic-where-clause)<sub>可選</sub> > <!-- --> > 協議構造器聲明語法 > > *協議構造器聲明* → [構造器頭](./06_Declarations.md#initializer-head) [泛型參數子句](./09_Generic_Parameters_and_Arguments.md#generic-parameter-clause)<sub>可選</sub> [參數子句](./06_Declarations.md#parameter-clause) **throws**<sub>可選</sub> [泛型 where 子句](./09_Generic_Parameters_and_Arguments.md#generic-where-clause)<sub>可選</sub> > > *協議構造器聲明* → [構造器頭](./06_Declarations.md#initializer-head) [泛型參數子句](./09_Generic_Parameters_and_Arguments.md#generic-parameter-clause)<sub>可選</sub> [參數子句](./06_Declarations.md#parameter-clause) **rethrows** [泛型 where 子句](./09_Generic_Parameters_and_Arguments.md#generic-where-clause)<sub>可選</sub> > <!-- --> > 協議下標聲明語法 > > *協議下標聲明* → [下標頭](./06_Declarations.md#subscript-head) [下標結果](./06_Declarations.md#subscript-result) [泛型 where 子句](./09_Generic_Parameters_and_Arguments.md#generic-where-clause)<sub>可選</sub> [getter-setter 關鍵字塊](./06_Declarations.md#getter-setter-keyword-block) > <!-- --> > 協議關聯類型聲明語法 > > *協議關聯類型聲明* → [特性](./07_Attributes.md#attributes)<sub>可選</sub> [訪問級別修飾符](./07_Attributes.md#access-level-modifier)<sub>可選</sub> **associatedtype** [類型別名](./06_Declarations.md#typealias-name) [類型繼承子句](./03_Types.md#type-inheritance-clause)<sub>可選</sub> [類型別名賦值](./06_Declarations.md#typealias-assignment)<sub>可選</sub> [泛型 where 子句](./09_Generic_Parameters_and_Arguments.md#generic-where-clause)<sub>可選</sub> > <!-- --> > 構造器聲明語法 > > *構造器聲明* → [構造器頭](./06_Declarations.md#initializer-head) [泛型參數子句](./09_Generic_Parameters_and_Arguments.md#generic-parameter-clause)<sub>可選</sub> [參數子句](./06_Declarations.md#parameter-clause) **throws**<sub>可選</sub> [泛型 where 子句](./09_Generic_Parameters_and_Arguments.md#generic-where-clause)<sub>可選</sub> [構造器主體](./06_Declarations.md#initializer-body) > > *構造器聲明* → [構造器頭](./06_Declarations.md#initializer-head) [泛型參數子句](./09_Generic_Parameters_and_Arguments.md#generic-parameter-clause)<sub>可選</sub> [參數子句](./06_Declarations.md#parameter-clause) **rethrows** [泛型 where 子句](./09_Generic_Parameters_and_Arguments.md#generic-where-clause)<sub>可選</sub> [構造器主體](./06_Declarations.md#initializer-body) > > *構造器頭(Head)* → [特性](./07_Attributes.md#attributes)<sub>可選</sub> [聲明修飾符集](./06_Declarations.md#declaration-modifiers)<sub>可選</sub> **init** > > *構造器頭(Head)* → [特性](./07_Attributes.md#attributes)<sub>可選</sub> [聲明修飾符集](./06_Declarations.md#declaration-modifiers)<sub>可選</sub> **init ?** > > *構造器頭(Head)* → [特性](./07_Attributes.md#attributes)<sub>可選</sub> [聲明修飾符集](./06_Declarations.md#declaration-modifiers)<sub>可選</sub> **init !** > > *構造器主體* → [代碼塊](./06_Declarations.md#code-block) > <!-- --> > 析構器聲明語法 > > *析構器聲明* → [特性](./07_Attributes.md#attributes)<sub>可選</sub> **deinit** [代碼塊](./06_Declarations.md#code-block) > <!-- --> > 擴展聲明語法 > > *擴展聲明* → [特性](./07_Attributes.md#attributes)<sub>可選</sub> [訪問級別修飾符](./07_Attributes.md#access-level-modifier)<sub>可選</sub> **extension** [類型標識](./03_Types.md#type-identifier) [類型繼承子句](./03_Types.md#type-inheritance-clause)<sub>可選</sub> [泛型 where 子句](./09_Generic_Parameters_and_Arguments.md#generic-where-clause)<sub>可選</sub> [擴展主體](./06_Declarations.md#extension-body) > > *擴展主體* → **{** [擴展成員集](./06_Declarations.md#declarations)<sub>可選</sub> **}** > > *擴展成員集* → [擴展成員](./06_Declarations.md#declarations) [擴展成員集](./06_Declarations.md#declarations)<sub>可選</sub> > > *擴展成員* → [聲明集](./06_Declarations.md#declarations) | [編譯控制語句](./05_Statements.md#compiler-control-statement) > <!-- --> > 下標聲明語法 > > *下標聲明* → [下標頭](./06_Declarations.md#subscript-head) [下標結果](./06_Declarations.md#subscript-result) [泛型 where 子句](./09_Generic_Parameters_and_Arguments.md#generic-where-clause)<sub>可選</sub> [代碼塊](./06_Declarations.md#code-block) > > *下標聲明* → [下標頭](./06_Declarations.md#subscript-head) [下標結果](./06_Declarations.md#subscript-result) [泛型 where 子句](./09_Generic_Parameters_and_Arguments.md#generic-where-clause)<sub>可選</sub> [getter-setter 塊](./06_Declarations.md#getter-setter-block) > > *下標聲明* → [下標頭](./06_Declarations.md#subscript-head) [下標結果](./06_Declarations.md#subscript-result) [泛型 where 子句](./09_Generic_Parameters_and_Arguments.md#generic-where-clause)<sub>可選</sub> [getter-setter 關鍵字塊](./06_Declarations.md#getter-setter-keyword-block) > > *下標頭(Head)* → [特性](./07_Attributes.md#attributes)<sub>可選</sub> [聲明修飾符集](./06_Declarations.md#declaration-modifiers)<sub>可選</sub> **subscript** [泛型參數子句](./09_Generic_Parameters_and_Arguments.md#generic-parameter-clause)<sub>可選</sub> [參數子句](./06_Declarations.md#parameter-clause) > > *下標結果(Result)* → **->** [特性](./07_Attributes.md#attributes)<sub>可選</sub> [類型](./03_Types.md#type) > <!-- --> > 運算符聲明語法 > > *運算符聲明* → [前置運算符聲明](./06_Declarations.md#prefix-operator-declaration) | [后置運算符聲明](./06_Declarations.md#postfix-operator-declaration) | [中置運算符聲明](./06_Declarations.md#infix-operator-declaration) > > *前置運算符聲明* → **prefix** **operator** [運算符](./02_Lexical_Structure.md#operator) > > *后置運算符聲明* → **postfix** **operator** [運算符](./02_Lexical_Structure.md#operator) > > *中置運算符聲明* → **infix** **operator** [運算符](./02_Lexical_Structure.md#operator) [中置運算符特性](./06_Declarations.md#infix-operator-attributes)<sub>可選</sub> > > *中置運算符特性* → [優先級組名](./06_Declarations.md#precedence-group-name) > > 優先級組聲明語法 > > *優先級組聲明* → **precedencegroup** [優先級組名](./06_Declarations.md#precedence-group-name) **{** [優先級組特性](./06_Declarations.md#precedence-group-attributes)<sub>可選</sub> **}** > > *優先級組特性* → [優先級組屬性](./06_Declarations.md#declarations) [優先級組特性](./06_Declarations.md#declarations)<sub>可選</sub> > > *優先級組屬性* → [優先級組關系](./06_Declarations.md#declarations) > > *優先級組屬性* → [優先級組賦值](./06_Declarations.md#declarations) > > *優先級組屬性* → [優先級組結合](./06_Declarations.md#declarations) > > *優先級組關系* → **higherThan :** [優先級組名集](./06_Declarations.md#declarations) > > *優先級組關系* → **lowerThan :** [優先級組名集](./06_Declarations.md#declarations) > > *優先級組賦值* → **assignment :** [布爾字面量](./02_Lexical_Structure.md#string-literal) > > *優先級組結合* → **associativity : left** > > *優先級組結合* → **associativity : right** > > *優先級組結合* → **associativity : none** > > *優先級組名集* → [優先級組名](./06_Declarations.md#declarations) | [優先級組名](./06_Declarations.md#declarations) **,** [優先級組名集](./06_Declarations.md#declarations) > > *優先級組名* → [標識符](./02_Lexical_Structure.md#identifier) > <!-- --> > 聲明修飾符語法 > > *聲明修飾符* → **class** | **convenience** | **dynamic** | **final** | **infix** | **lazy** | **optional** | **override** | **postfix** | **prefix** | **required** | **static** | **unowned** | **unowned(safe)** | **unowned(unsafe)** | **weak** > > *聲明修飾符* → [訪問級別修飾符](./07_Attributes.md#access-level-modifier) > > *聲明修飾符* → [可變性修飾符](./07_Attributes.md#mutation-modifier) > > *聲明修飾符集* → [聲明修飾符](./06_Declarations.md#declaration-modifier) [聲明修飾符集](./06_Declarations.md#declaration-modifiers)<sub>可選</sub> > > *訪問級別修飾符* → **private** | **private(set)** > > *訪問級別修飾符* → **fileprivate** | **fileprivate(set)** > > *訪問級別修飾符* → **internal** | **internal(set)** > > *訪問級別修飾符* → **public** | **public(set)** > > *訪問級別修飾符* → **open** | **open(set)** > > *可變性修飾符* → **mutating** | **nonmutating** > ## 屬性 {#attributes} > 屬性語法 > > *屬性* → **@** [屬性名](./07_Attributes.md#attribute-name) [屬性參數子句](./07_Attributes.md#attribute-argument-clause)<sub>可選</sub> > > *屬性名* → [標識符](./02_Lexical_Structure.md#identifier) > > *屬性參數子句* → **{** [平衡令牌集](./07_Attributes.md#balanced-tokens)<sub>可選</sub> **}** > > *屬性(Attributes)集* → [屬性](./07_Attributes.md#attribute) [特性](./07_Attributes.md#attributes)<sub>可選</sub> > > *平衡令牌集* → [平衡令牌](./07_Attributes.md#balanced-token) [平衡令牌集](./07_Attributes.md#balanced-tokens)<sub>可選</sub> > > *平衡令牌* → **(** [平衡令牌集](./07_Attributes.md#balanced-tokens)<sub>可選</sub> **)** > > *平衡令牌* → **[** [平衡令牌集](./07_Attributes.md#balanced-tokens)<sub>可選</sub> **]** > > *平衡令牌* → **{** [平衡令牌集](./07_Attributes.md#balanced-tokens)<sub>可選</sub> **}** > > *平衡令牌* → 任意標識符、關鍵字、字面量或運算符 > > *平衡令牌* → 除 **(** 、**)**、**[**、**]**、**{**、**}** 外的任意標點符號 > > ## 模式 {#patterns} > 模式語法 > > *模式* → [通配符模式](./08_Patterns.md#wildcard-pattern) [類型注解](./03_Types.md#type-annotation)<sub>可選</sub> > > *模式* → [標識符模式](./08_Patterns.md#identifier-pattern) [類型注解](./03_Types.md#type-annotati Value Bindingon )<sub>可選</sub> > > *模式* → [值綁定模式](./08_Patterns.md#value-binding-pattern) > > *模式* → [元組模式](./08_Patterns.md#tuple-pattern) [類型注解](./03_Types.md#type-annotation)<sub>可選</sub> > > *模式* → [枚舉 case 模式](./08_Patterns.md#enum-case-pattern) > > *模式* → [可選模式](./08_Patterns.md#optional-pattern) > > *模式* → [類型轉換模式](./08_Patterns.md#type-casting-pattern) > > *模式* → [表達式模式](./08_Patterns.md#expression-pattern) > <!-- --> > 通配符模式語法 > > *通配符模式* → **_** > <!-- --> > 標識符模式語法 > > *標識符模式* → [標識符](./02_Lexical_Structure.md#identifier) > <!-- --> > 值綁定模式語法 > > *值綁定模式* → **var** [模式](./08_Patterns.md#pattern) | **let** [模式](./08_Patterns.md#pattern) > <!-- --> > 元組模式語法 > > *元組模式* → **(** [元組模式元素集](./08_Patterns.md#tuple-pattern-element-list)<sub>可選</sub> **)** > > *元組模式元素集* → [元組模式元素](./08_Patterns.md#tuple-pattern-element) | [元組模式元素](./08_Patterns.md#tuple-pattern-element) **,** [元組模式元素集](./08_Patterns.md#tuple-pattern-element-list) > > *元組模式元素* → [模式](./08_Patterns.md#pattern) | [標識符](./02_Lexical_Structure.md#identifier) **:** [模式](./08_Patterns.md#pattern) > <!-- --> > 枚舉 case 模式語法 > > *enum-case-pattern* → [類型標識](./03_Types.md#type-identifier)<sub>可選</sub> **.** [枚舉 case 名](./06_Declarations.md#enum-case-name) [元組模式](./08_Patterns.md#tuple-pattern)<sub>可選</sub> > <!-- --> > 可選模式語法 > > *可選模式* → [標識符模式](./02_Lexical_Structure.md#identifier) **?** > <!-- --> > 類型轉換模式語法 > > *類型轉換模式* → [is 模式](./08_Patterns.md#is-pattern) | [as 模式](./08_Patterns.md#as-pattern) > > *is 模式* → **is** [類型](./03_Types.md#type) > > *as 模式* → [模式](./08_Patterns.md#pattern) **as** [類型](./03_Types.md#type) > <!-- --> > 表達式模式語法 > > *表達式模式* → [表達式](./04_Expressions.md#expression) > ## 泛型參數 {#generic-parameters-and-arguments} > 泛型形參子句語法 > > > *泛型參數子句* → **<** [泛型參數集](./09_Generic_Parameters_and_Arguments.md#generic-parameter-list) **>** > > *泛型參數集* → [泛型參數](./09_Generic_Parameters_and_Arguments.md#generic-parameter) | [泛形參數](./09_Generic_Parameters_and_Arguments.md#generic-parameter) **,** [泛型參數集](./09_Generic_Parameters_and_Arguments.md#generic-parameter-list) > > *泛形參數* → [類型名稱](./03_Types.md#type-name) > > *泛形參數* → [類型名稱](./03_Types.md#type-name) **:** [類型標識](./03_Types.md#type-identifier) > > *泛形參數* → [類型名稱](./03_Types.md#type-name) **:** [協議合成類型](./03_Types.md#protocol-composition-type) > > *泛型 where 子句* → **where** [約束集](./09_Generic_Parameters_and_Arguments.md#requirement-list) > > *約束集* → [約束](./09_Generic_Parameters_and_Arguments.md#requirement) | [約束](./09_Generic_Parameters_and_Arguments.md#requirement) **,** [約束集](./09_Generic_Parameters_and_Arguments.md#requirement-list) > > *約束* → [一致性約束](./09_Generic_Parameters_and_Arguments.md#conformance-requirement) | [同類型約束](./09_Generic_Parameters_and_Arguments.md#same-type-requirement) > > *一致性約束* → [類型標識](./03_Types.md#type-identifier) **:** [類型標識](./03_Types.md#type-identifier) > > *一致性約束* → [類型標識](./03_Types.md#type-identifier) **:** [協議合成類型](./03_Types.md#protocol-composition-type) > > *同類型約束* → [類型標識](./03_Types.md#type-identifier) **==** [類型](./03_Types.md#type-identifier) > <!-- --> > 泛型實參子句語法 > > *泛型實參子句* → **<** [泛型實參集](./09_Generic_Parameters_and_Arguments.md#generic-argument-list) **>** > > *泛型實參集* → [泛型實參](./09_Generic_Parameters_and_Arguments.md#generic-argument) | [泛形實參](./09_Generic_Parameters_and_Arguments.md#generic-argument) **,** [泛型實參集](./09_Generic_Parameters_and_Arguments.md#generic-argument-list) > > *泛形實參* → [類型](./03_Types.md#type)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看