后綴表達(dá)式就是在某個(gè)表達(dá)式的后面加上 操作符。 嚴(yán)格的講,每個(gè)主要表達(dá)式(primary expression)都是一個(gè)后綴表達(dá)式
Swift 標(biāo)準(zhǔn)庫(kù)提供了下列后綴表達(dá)式:
對(duì)于這些操作符的使用,請(qǐng)參見(jiàn): Basic Operators and Advanced Operators
后置表達(dá)式語(yǔ)法
后置表達(dá)式 → 主表達(dá)式
后置表達(dá)式 → 后置表達(dá)式 后置運(yùn)算符
后置表達(dá)式 → 函數(shù)調(diào)用表達(dá)式
后置表達(dá)式 → 構(gòu)造器表達(dá)式
后置表達(dá)式 → 顯示成員表達(dá)式
后置表達(dá)式 → 后置self表達(dá)式
后置表達(dá)式 → 動(dòng)態(tài)類(lèi)型表達(dá)式
后置表達(dá)式 → 下標(biāo)表達(dá)式
后置表達(dá)式 → 強(qiáng)制取值(Forced Value)表達(dá)式
后置表達(dá)式 → 可選鏈(Optional Chaining)表達(dá)式
函數(shù)調(diào)用表達(dá)式由函數(shù)名和參數(shù)列表組成。它的形式如下:
function name(argument value 1,argument value 2)
The function name can be any expression whose value is of a function type. (不用翻譯了, 太羅嗦)
如果該function 的聲明中指定了參數(shù)的名字,那么在調(diào)用的時(shí)候也必須得寫(xiě)出來(lái). 例如:
function name(argument name 1:argument value 1,argument name 2:argument value 2)
可以在 函數(shù)調(diào)用表達(dá)式的尾部(最后一個(gè)參數(shù)之后)加上 一個(gè)閉包(closure) , 該閉包會(huì)被目標(biāo)函數(shù)理解并執(zhí)行。它具有如下兩種寫(xiě)法:
// someFunction takes an integer and a closure as its arguments
someFunction(x, {$0 == 13})
someFunction(x) {$0 == 13}
如果閉包是該函數(shù)的唯一參數(shù),那么圓括號(hào)可以省略。
// someFunction takes a closure as its only argument
myData.someMethod() {$0 == 13}
myData.someMethod {$0 == 13}
函數(shù)調(diào)用表達(dá)式語(yǔ)法
函數(shù)調(diào)用表達(dá)式 → 后置表達(dá)式 圓括號(hào)表達(dá)式
函數(shù)調(diào)用表達(dá)式 → 后置表達(dá)式 圓括號(hào)表達(dá)式 可選 后置閉包(Trailing Closure)
后置閉包(Trailing Closure) → 閉包表達(dá)式
Initializer表達(dá)式用來(lái)給某個(gè)Type初始化。 它的形式如下:
expression.init(initializer arguments)
(Initializer表達(dá)式用來(lái)給某個(gè)Type初始化。) 跟函數(shù)(function)不同, initializer 不能返回值。
var x = SomeClass.someClassFunction // ok
var y = SomeClass.init // error
可以通過(guò) initializer 表達(dá)式來(lái)委托調(diào)用(delegate to )到superclass的initializers.
class SomeSubClass: 上一篇:Swift關(guān)鍵字下一篇:Swift泛型函數(shù)