IOS開發:Swift中附屬指令碼的使用說明

莫非有道發表於2017-11-21

附屬指令碼,說白了就是下標,就是類似陣列(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-…

相關文章