下标是啥
下标穷人版(本人)解释就是在一数据堆(容器)里面找一个想要的数据。这时候下标好比一个“绳子”,通过拽“绳子”一端可以很快的找到“绳子”另外一端我们想要的那个数据。
注: 这里的容器指Array与Dictionary。
下标语法
1.关键字subscript
2.括号内参数有一个或者多个,内置get/set尾闭包(set可选),若没有set则为只读下标。形如:
subscript(indexNum1: Int, indexNum2: Int) -> Int {
get {
// return an appropriate subscript value here
}
set(newValue) {
// perform a suitable setting action here
}
}
3.取/存语法为关键字后是方括号([]
),方括号里面是一个或者多个对应的索引值,索引值间已逗号隔开。形如(接着上面的定义的例子):
var num = Object[indexNumX, indexNumXX]
Object[indexNumX, indexNumXX] = 5 // 非只读, 实现`set`
下标能用来干啥。。。
存在即合理,合理是需要有使用价值的。。好,问题来了。。用来哪里?怎么用?
穷人版枚举 (v . v)
1.传统取值 aArray[index]/ aDictionary["key"] (- -略)
2.多值筛选
与多返回值/扩展特性结合,返回集合内指定下标的子集合:
extension Array {
typealias ArrayType = Element
subscript(index1: Int, index2: Int) -> [ArrayType] {
return [self[index1], self[index2]]
}
}
// 测试
var array = [1, 3, 4, 6, 7, 8]
println(array[3, 5])
// 结果
[6, 8]
3.业务需求
待续。。。