IOS开发:Swift中的subscript关键字详解
的有关信息介绍如下:
在Swift 中, 不像Objective-C一样, 有些关键字,可以找到对应的解释。通常情况下,我们在使用数组(Array),字典(Dictionary)时会使用到下标。其实在Swift中,我们还可以给类、结构、枚举等自定义下标(subscript)。
基本使用
在TimesTable结构中自定义subscript,并且这个subscript类似于方法,看上去它的类型为 Int -> Int。
然后在调用时,就可以使用"[index]"这样的形式取值。
subscript可以删除字典中的某个特定的key-value
下面的numberOfLegs初始的时候它有三对值,当进行numberOfLegs["ant"] = nil 操作后,相当于key为"ant"的key-value被删除了,所以打印的输出为2。
subscript中的索引参数不一定永远是一个Int类型的index,它也可以有多个参数。
比如,我们可以使用subscript将一维数组模拟成二维数组。
下面代码中的grid成员属性是一个含有rows * cols 个元素的一维数组。
然后定义一个subscript, 这里的下标有两个:row和col。然后根据具体的输入参数,从grid数组中取出对应的值。所以这里的下标只是模拟,看起来输入row和col,但实际还是从一维数组grid中取值。
获取数组中指定索引位置的子数组,我们可以在Array的扩展中用subscript来实现。
代码中的input数组表示选取的Array中的某些下标。例如:
那么通过input中的值在arr数组中取得的子数组为 [1, 3]
subscript中的get方法就是根据input中的数组的下标值取得arr数组中对应下标的子数组。
subscript中的set方法就是根据input中的数组的下标值对arr数组中对应下标的内容重新赋值。



