详解Swift中的下标访问用法
Swift中的Array,Dictionary类型可以通过下标或者键值的方式来进行数据的访问,实际上在Swift的语法中,下标可以定义在类、结构体、枚举中。开发者可以通过下标的方式来对属性进行访问而不用使用专门的存取方法。并且定义的下标不限于一维,开发者可以定义多维的下标来满足需求。
下标的语法结构
下标使用subscript来定义,其有些类似于方法,参数和返回值本别作为下标入参和通过下标所取的值。但是在subscript实现部分,又十分类似于计算属性,其需要实现一个get块和可选实现一个set块,get块用于使用下标取值,set块用于使用下标设置值,因此,subscript结构更像是计算属性和方法的混合体,示例如下:
class MyClass {
var array=[1,1,1,1,1]
subscript(param1:Int)->Int{
set{
array[param1] = newValue
}
get{
return array[param1]
}
}
}
var obj = MyClass()
obj[0] = 3
class MyClass {
var array=[1,1,1,1,1]
subscript(param1:Int,param2:Int)->Int{
set{
array[param1] = newValue
}
get{
return array[param1]
}
}
}
var obj = MyClass()
obj[0,1] = 3
下标的特性
Swift中的下标可以自定参数个数和参数类型,返回数据的类型开发者也可以进行自定义。但是有一点需要注意,下标的参数不能设置默认值,也不能设置为in-out类型。多维下标常用语行列数据的访问,示例如下:
class SectionAndRow {
var array:Array<Array<Int>> = [ [1,2]
,[3,4]
,[5,6]
,[7,8]
]
subscript(section:Int,row:Int)->Int{
get{
let temp = array[section]
return temp[row]
}
}
}
var data = SectionAndRow()
//通过二维下标取值
data[1,1]
相关文章
Swift操作Quartz 2D进行简单的绘图与坐标变换的教程
这篇文章主要介绍了Swift操作Quartz 2D进行简单的绘图与坐标变换的教程,Quartz 2D是Core Graphics框架中的一个重要组件,经常被Mac OS或和iOS开发者用来绘图,需要的朋友可以参考下2016-04-04
Swift实现Selection Sort选择排序算法的实例讲解
选择排序是一种稳定的排序算法,且实现代码通常比冒泡排序要来的简单,这里我们就来看一下Swift实现Selection Sort选择排序的实例讲解2016-07-07
SwiftUI使用Paths和AnimatableData实现酷炫的颜色切换动画
这篇文章主要介绍了SwiftUI使用Paths和AnimatableData实现酷炫的颜色切换动画,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧2020-05-05


最新评论