Swift12-下标

下标语法、下标用法、下标选项。

下标可以定义在类、结构体和枚举中,是访问集合、列表或序列中元素的快捷方式。可使用下标的索引,设置和获取值1,而不需要再调用对应的存取方法。

一个类型可以定义多个下标,通过不同索引类型进行重载。下标不限于一维,可以定义具有多个入参的下标满足自定义类型的需求。

下标语法:

定义下标使用subscript关键字,指定一个或多个输入参数和返回类型;与实例方法不同的是,下标可以设定为读写或只读。这种行为由getter和setter实现,有点类似计算属性。

subscript( index: Int) -> Int {

  get{

    //

  }

  set{

    //

  }

}

newVaule的类型和下标的返回类型相同。如同计算型属性,可以不指定setter的参数(newValue)。如果不指定参数,setter会提供一个名为newValue的默认参数。

getter无需参数。

如同只读计算型属性,可以省略只读下标的get关键字:

subscript( index: Int) -> Int {

  //return xxx

}

一个下标示例:

struct name{
  let multiplier:Int
  subscript(index:Int)->Int{
    return index*multiplier
  }
}
let a=name(multiplier:3)
print(a[9])

下标用法:

下标的确切含义取决于使用场景。下标通常作为访问集合,列表或序列中元素的快捷方式。

例如,Swift的字典类型实现下标用于对其实例中储存的值进行存取操作。为字典设值时,在下标中使用和字典的键类型相同的键,并把一个和字典的值类型相同的值赋给这个下标。

下标选项:

下标可以接受任意数量的入参,并且这些入参可以是任意类型。下标的返回值也可以是任意类型。下标可以使用变量参数和可变参数,但不能使用输入输出参数,也不能给参数设置默认值。

一个类或结构体可以根据自身需要提供多个下标实现,使用下标时将通过入参的数量和类型进行区分,自动匹配合适的下标,这就是下标的重载。

接受单一入参的下标最常见,但也可以定义接受多个入参的下标。

subcript(row:Int, column: Int) -> Int{

  get{

    return xxx

  }

}

原文地址:https://www.cnblogs.com/cjj-ggboy/p/12845996.html