Swift-数组

来源:互联网 发布:丁香园cto 知乎 编辑:程序博客网 时间:2024/06/14 06:06

用方括号[]来创建数组。最后一个元素后面可以有一个逗号(当然也可以没有啦)。初始化的方法有很多种:

var array = [2, 3, 4, 5]var array1: Array = [2, 3, 4, 5]var array2: Array<Int> = [2, 3, 4, 5]var array3: [Int] = [2, 3, 4, 5]

可以用初始化语法来创建一个空的数组:

let emptyArray = [String]()

还可以创建一个有特点大小并且所有元素都相同的数组:

var array4 = [String](count: 4, repeatedValue: "lala")var array5 = Array(count: 4, repeatedValue: "lala")


往数组中添加元素:

array.append(1)array += [6, 7]array.insert(4, atIndex: 0)
前两种是在数组的最后面添加,第三种是在指定位置之前加。


删除元素:

array.removeFirst() // 移除首部元素array.removeLast() // 移除尾部元素array.removeAtIndex(0) // 移除指定位置的元素array.removeRange(Range(0..<2)) // 移除某个范围内的元素array.removeAll(keepCapacity: true) // 移除所有元素并保留容量,默认不保留array.removeAll() // 移除所有元素
(注:0..<2 是指0、1,不包含上界2。如果想包含上界2,用0...2)


修改元素:

array[2] = 333array[1...3] = [10, 11, 12]

除了这些基本操作以外,还有些非常方便、好用的操作:(注意,闭包内的是用花括号)

对数组内的元素进行排序:

array = array.sort{$0 < $1} // 从小到大排array = array.sort{$0 > $1} // 从大到小排

把数组内的元素翻转:(比如 [2, 4, 3, 9] 翻转变成 [9, 3, 4, 2])

array = array.reverse()

根据条件筛选数组,比如筛选出数组中的偶数:

array = array.filter{$0 % 2 == 0}

对当前数组中的所有元素运用闭包中的规则然后返回一个新数组(什么意思呢?比如说让数组内的元素的值全部扩大3倍):

array = array.map{$0 * 3}

对当前数组中的所有元素运用闭包中的规则然后返回一个值(比如说求数组内所有元素的加和或者乘积,小括号内的是初值):

let a = array.reduce(0){$0 + $1}let b = array.reduce(1){$0 * $1}

如果有一天 Swift 真的完全替代了 OC,我会很难过。。。



1 0
原创粉丝点击