Swift文档Chapter 12 下标


下标可以定义在类,结构体和枚举中。是访问集合,列表或者序列中元素的快捷方式。
一个类型可以定义多个下标,通过不同的索引类型进行重载。下标不限于一维,可以定义有多个入参的下标满足自定义需求。

下标语法

下标语法通过方括号传入一个或者多个索引值对实例进行存取。语法类似于实例方法语法和计算型属性语法的混合。定义下标使用subscript,第一一个或多个输入参数和返回类型。与实例方法不同的是,下标可以设定为读写或只读。这种行为由gettersetter实现,有点类似计算型属性:

subscript(index: Int) -> Int {
    get {
      // 返回一个适当的 Int 类型的值
    }
    set(newValue) {
      // 执行适当的赋值操作
    }
}

newValue和返回值属性相同,如果不指定setter参数,默认为newValue为默认参数。如果是只读计算型属性,那么可以省略get语句。

subscript(index: Int) -> Int {
    // 返回一个适当的 Int 类型的值
}

下标用法

下标选项

下标可以接受任意数量的入参,入参可以是任意类型。下标返回值可以是任意类型。如果需要多个下标实现需要依靠不同的入参类型和数量进行区分,这就是下标的重载

类型下标

可以在subscript前加入static定义类型下标。如果使用class可以允许在子类中重写父类的方法。