附屬指令碼,說白了就是下標,就是類似陣列(Array)的someArray[index]或字典(Dictionary)的someDictionary[key]這種用法。Swfit把這種功能開放了出來,使得我們自定義的類、結構體、列舉也能有這樣的功能。這種特性可以讓我們非常方便的來訪問某些變數。接下里我們舉個例子來說明它的用法。
class TenTimes {
let multiplier: Int = 10
subscript(index: Int) -> Int {
return multiplier * index
}
}
let tenTimes = TenTimes()
print("6的10倍是(tenTimes[6])")
可以看到,我們可以使用關鍵字subscript來自定義我們的下標的使用情況。它的標準寫法類似於計算屬性,即:
subscript(index: Int) -> Int {
get {
// 返回與入參匹配的Int型別的值
}
set(newValue) {
// 執行賦值操作
}
}
當然了你也可以像計算屬性那樣,不寫傳入引數的名字而直接使用newValue這個預設名字。
上面演示的是通常我們在陣列或字典中使用的情況,即下標是一個變數,實際呢,附屬指令碼支援過載,即你可以給一個類定義多個附屬指令碼,可以讓這個類具有不同的附屬指令碼,這裡我們就不演示了,感興趣的可以自己測試一下。
原文地址:codeapp:http://www.code4app.com/blog-…