這里的教程為Swift官方教程中文版。

關(guān)于語言參考(About the Language Reference)


1.0 翻譯:dabing1022 校對:numbbbbb

2.0 翻譯+校對:KYawn

本頁內(nèi)容包括:

本書的這一節(jié)描述了 Swift 編程語言的形式語法。這里描述的語法是為了幫助您更詳細(xì)地了解該語言,而不是讓您直接實現(xiàn)一個解析器或編譯器。

Swift 語言相對較小,這是由于 Swift 代碼中的幾乎所有常見類型、函數(shù)以及運算符都已經(jīng)在 Swift 標(biāo)準(zhǔn)庫中定義了。雖然這些類型、函數(shù)和運算符并不是 Swift 語言自身的一部分,但是它們被廣泛應(yīng)用于本書的討論和代碼范例中。

如何閱讀語法

用來描述 Swift 編程語言形式語法的符號遵循下面幾個約定:

  • 箭頭()用來標(biāo)記語法產(chǎn)式,可以理解為“可由……構(gòu)成”。
  • 斜體文字用來表示句法類型,并出現(xiàn)在一個語法產(chǎn)式規(guī)則兩側(cè)。
  • 關(guān)鍵字和標(biāo)點符號由固定寬度的粗體文本表示,只出現(xiàn)在一個語法產(chǎn)式規(guī)則的右側(cè)。
  • 可供選擇的語法產(chǎn)式由豎線(|)分隔。當(dāng)可選用的語法產(chǎn)式太多時,為了閱讀方便,它們將被拆分為多行語法產(chǎn)式規(guī)則。
  • 少數(shù)情況下,語法產(chǎn)式規(guī)則的右側(cè)會有用于描述的常規(guī)字體文字。
  • 可選的句法類型和字面值用尾標(biāo) opt 來標(biāo)記。

舉個例子,getter-setter 的語法塊的定義如下:

getter-setter 方法塊語法
getter-setter 方法塊 → { getter 子句 setter 子句可選 } | { setter 子句 getter 子句 }

這個定義表明,一個 getter-setter 方法塊可以由一個 getter 子句后跟一個可選的 setter 子句構(gòu)成,然后用大括號括起來,或者由一個 setter 子句后跟一個 getter 子句構(gòu)成,然后用大括號括起來。下面的兩個語法產(chǎn)式等價于上述的語法產(chǎn)式,并明確指出了如何取舍:

getter-setter 方法塊語法
getter-setter 方法塊 → { getter 子句 setter 子句可選 }
getter-setter 方法塊 → { setter 子句 getter 子句 }

? 高級運算符 詞法結(jié)構(gòu) ?
?