下标是啥

下标穷人版(本人)解释就是在一数据堆(容器)里面找一个想要的数据。这时候下标好比一个“绳子”,通过拽“绳子”一端可以很快的找到“绳子”另外一端我们想要的那个数据。
注: 这里的容器指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.业务需求
待续。。。


Cruise_Chan
729 声望71 粉丝

技能树点歪了...咋办