Swift 中下标和函数的区别

Ale*_*lec 1 subscript swift swift-subscript

下标和swift中的函数有什么区别吗?有人可以用一个小例子来解释我吗?

kap*_*kap 5

如果您的意思是自定义类的下标,那么不。看起来它们只是计算属性的语法糖

class IHaveASubscript<T> {
    private var array: Array<T>
    init() {
        array = []
    }
    subscript (index: Int) -> T {
        get {
            return array[index]
        }
        set(newValue) {
            array[index] = newValue
        }
    }
    func elementAtIndex(index: Int) -> T {
        return array[index]
    }
    func setElementAtIndex(index: Int, element: T) {
        array[index] = element
    }
}
Run Code Online (Sandbox Code Playgroud)