附属脚本,说白了就是下标,就是类似数组(Array)的someArray[index]或字典(Dictionary)的someDictionary[key]这种用法。Swfit把这种功能开放了出来,使得我们自定义的类、结构体、枚举也能有这样的功能。这种特性可以让我们非常方便的来访问某些变量。接下里我们举个例子来说明它的用法。
class TenTimes {
let multiplier: Int = 10
subscript(index: Int) -> Int {
return multiplier * index
}
}
let tenTimes = TenTimes()
print("6的10倍是\(tenTimes[6])")
可以看到,我们可以使用关键字subscript来自定义我们的下标的使用情况。它的标准写法类似于计算属性,即:
subscript(index: Int) -> Int {
get {
// 返回与入参匹配的Int类型的值
}
set(newValue) {
// 执行赋值操作
}
}
当然了你也可以像计算属性那样,不写传入参数的名字而直接使用newValue这个默认名字。
上面演示的是通常我们在数组或字典中使用的情况,即下标是一个变量,实际呢,附属脚本支持重载,即你可以给一个类定义多个附属脚本,可以让这个类具有不同的附属脚本,这里我们就不演示了,感兴趣的可以自己测试一下。