下標腳本允許你通過在實例后面的方括號中傳入一個或者多個的索引值來對實例進行訪問和賦值。語法類似于實 例方法和計算型屬性的混合
struct TimesTable{
let multiplier: Int
subscript(index:Int) -> Int{
return multiplier * index;
}
}
let? threeTimesTable = TimesTable(multiplier: 3)
print("3的6倍是\(threeTimesTable[6])")
TimesTable例子是基于一個固定的數(shù)學公式。它并不適合對threeTimesTable[6]進行賦值操作,這也是為什么附屬腳本只定義為只讀的原因。
var numberOfLegs = ["spider": 8, "ant": 6, "cat": 4]
numberOfLegs["bird"] = 2
Swift中字典的附屬腳本實現(xiàn)中,在get部分返回值是Int?,上例中numberOfLegs字典通過附屬腳本返回的是一個Int?或者說“可選Int”,不是每一個字典的索引都能得到一個整型值,對于沒有設置過值得索引的訪問返回結(jié)果就是nil;同樣想要從字典實例中刪除某個索引下的值也是需要給這個索引賦值的nil即可。
繼承
一個類可以繼承另一個類的方法,屬性和其他特性。當一個類繼承其他類時,繼承類叫子類,被繼承類叫超類。
Swift中的類并不是從一個通用的基類繼承而來。如果你不為你定義的類指定一個超類的話,這個類就自動成為基類。
防止重寫
你可以通過方法,屬性或下標腳本標記為final來防止它們被重寫,只需要在聲明關(guān)鍵字前加上final特性即可。