位置:首頁 > 高級語言 > Swift教學 > Swift下標腳本聲明

Swift下標腳本聲明

下標腳本聲明

附屬腳本用於向特定類型添加附屬腳本支持,通常為訪問集合,列表和序列的元素時提供語法便利。附屬腳本聲明使用關鍵字subscript,聲明形式如下:


subscript (parameter) -> (return type){
get{
statements
}
set(setter name){
statements
}
}
 

附屬腳本聲明隻能在類,結構體,枚舉,擴展和協議聲明的上下文進行聲明。

變量(parameters)指定一個或多個用於在相關類型的下標腳本中訪問元素的索引(例如,表達式object[i]中的i)。儘管用於元素訪問的索引可以是任意類型的,但是每個變量必須包含一個用於指定每種索引類型的類型標注。返回類型(return type)指定被訪問的元素的類型。

和計算性屬性一樣,下標腳本聲明支持對訪問元素的讀寫操作。getter用於讀取值,setter用於寫入值。setter子句是可選的,當僅需要一個getter子句時,可以將二者都忽略且直接返回請求的值即可。也就是說,如果使用了setter子句,就必須使用getter子句。

setter的名字和封閉的括號是可選的。如果使用了setter名稱,它會被當做傳給setter的變量的名稱。如果不使用setter名稱,那麼傳給setter的變量的名稱默認是value。setter名稱的類型必須與返回類型(return type)的類型相同。

可以在下標腳本聲明的類型中,可以重載下標腳本,隻要變量(parameters)返回類型(return type)與先前的不同即可。此時,必須使用override關鍵字聲明那個被覆蓋的下標腳本。(注:好亂啊!到底是重載還是覆蓋?!)

同樣可以在協議聲明的上下文中聲明下標腳本,Protocol Subscript Declaration中有所描述。

更多關於下標腳本和下標腳本聲明的例子,請參考Subscripts


附屬腳本聲明語法
附屬腳本聲明 → 附屬腳本頭(Head) 附屬腳本結果(Result) 代碼塊
附屬腳本聲明 → 附屬腳本頭(Head) 附屬腳本結果(Result) getter-setter塊
附屬腳本聲明 → 附屬腳本頭(Head) 附屬腳本結果(Result) getter-setter關鍵字(Keyword)塊
附屬腳本頭(Head) → 特性(Attributes)列表 可選 subscript 參數子句
附屬腳本結果(Result) → -> 特性(Attributes)列表 可選 類型