# 關于語言參考(About the Language Reference)
本書的這一節描述了 Swift 編程語言的形式語法。這里描述的語法是為了幫助您了解該語言的更多細節,而不是讓您直接實現一個解析器或編譯器。
Swift 語言相對較小,這是由于 Swift 代碼中常用的類型、函數以及運算符都已經在 Swift 標準庫中定義了。雖然這些類型、函數和運算符并不是 Swift 語言自身的一部分,但是它們被廣泛應用于本書的討論和代碼范例中。
## 如何閱讀語法 {#how-to-read-the-grammar}
用來描述 Swift 編程語言形式語法的符號遵循下面幾個約定:
- 箭頭(`→`)用來標記語法產式,可以理解為“可由……構成”。
- 斜體文字用來表示句法類型,并出現在一個語法產式規則兩側。
- 標記語言和標點符號由固定寬度的粗體文本表示,只出現在一個語法產式規則的右側。
- 可供選擇的語法產式由豎線(`|`)分隔。當可選用的語法產式太多時,為了閱讀方便,它們將被拆分為多行語法產式規則。
- 少數情況下,標準字體文本被用來描述一個語法產生規則的右手側內容。
- 可選的句法類型和文本標記用尾標 `opt` 來標記。
舉個例子,getter-setter 方法塊的語法定義如下:
> getter-setter 方法塊語法
>
> *getter-setter 方法塊* → { [getter 子句](./06_Declarations.md#getter-clause) [setter 子句](./06_Declarations.md#setter-clause)<sub>可選</sub> } | { [setter 子句](./06_Declarations.md#setter-clause) [getter 子句](./06_Declarations.md#getter-clause) }
這個定義表明,一個 getter-setter 方法塊可以由一個 getter 分句后跟一個可選的 setter 分句構成,然后用大括號括起來,或者由一個 setter 分句后跟一個 getter 分句構成,然后用大括號括起來。上述的語法產式等價于下面的兩個語法產式, :
> getter-setter 方法塊語法
>
> getter-setter 方法塊 → { [getter 子句](./06_Declarations.md#getter-clause) [setter 子句](./06_Declarations.md#setter-clause)<sub>可選</sub> }
>
> getter-setter 方法塊 → { [setter 子句](./06_Declarations.md#setter-clause) [getter 子句](./06_Declarations.md#getter-clause) }
>
- 1.關于 Swift
- 2.Swift 初見
- 2-1基礎部分
- 2-2基本運算符
- 2-3字符串和字符
- 2-4集合類型
- 2-5控制流
- 2-6函數
- 2-7閉包
- 2-8枚舉
- 2-9類和結構體
- 2-10屬性
- 2-11方法
- 2-12下標
- 2-13繼承
- 2-14構造過程
- 2-15析構過程
- 2-16可選鏈
- 2-17錯誤處理
- 2-18類型轉換
- 2-19嵌套類型
- 2-20擴展
- 2-21協議
- 2-22泛型
- 2-23不透明類型
- 2-24自動引用計數
- 2-25內存安全
- 2-26訪問控制
- 2-27高級運算符
- 3-1關于語言參考
- 3-2詞法結構
- 3-3類型
- 3-4表達式
- 3-5語句
- 3-6聲明
- 3-7特性
- 3-8模式
- 3-9泛型參數
- 4語法總結