swift 数组高阶使用(一)

###swift 数组高阶使用 在使用数组的时候,咱们一般会经过下标的方式来得到数组中的元素,可是有时候咱们会需求会很是变态,好比咱们只须要获取数组中下标为0,2,4的元素,或者对他们进行修改。swift的extension就给咱们提供了很好的帮助。直接上代码:swift

// 对Array 进行扩展
extension Array {
    // 这里咱们扩展一个新的方法,而且实现它的get和set方法
    subscript(input:[Int]) ->ArraySlice<Element> {
    get {
        var result = ArraySlice<Element>()
        for i in input {
            assert(i < self.count, "越界")// 越界时的断言
            result.append(self[i])
        }
        return result
    }
    set {
        for (index, i) in input.enumerate() {
            assert(i < self.count, "越界")// 越界时的断言
            self[i] = newValue[index]
        }
    }
    }
}
// 测试代码以下
var array = [1, 2, 3, 4, 5]
array[[0, 2, 4]]   // [1, 4, 5]
array[[0, 1, 2]] = [9, 9, 9]
array            // [9, 9, 9, 4, 5]

这样就能够知足咱们对数组的各类奇葩需求,但愿能够帮助你们。数组

PS: 断言在个人博客中也有讲解,具体连接:断言的使用

相关文章
相关标签/搜索