Swift初见Swift数组
Posted weasleyqi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swift初见Swift数组相关的知识,希望对你有一定的参考价值。
在Objective-C中数组是常用的数据类型,在Swift中同样如此,在OC中有NSArray与NSMutableArray之分,但是在Swift中只有通过let和var来区分数组是否可变,Swift中的数组是类型安全的,所以在某个数据被存入到某个数组之前类型必须明确,假如我们创建了一个String类型的数组,那么该数组中就不能添加非String的数据类型,这是Swift与OC的一个很重要的区别。数组的构造
我们以创建一个数组并存储Int类型的数组为例:
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]
数组的数量:数组有一个只读属性 count来获取数组中的数据项数量。
array.count
检查数组是否为空可以用isEmpty来检查count是否为0
if array.isEmpty
println("array is Empty")
else
println("array is not Empty")
当要在数组后面添加新的数据项时可以使用append方法来添加:
array .append(6)
此时数组中就有5个值了,
当数组的数据类型为字符串时,也可以使用加法赋值运算符(+=)直接在数组的后面添加新的数据项;
加法运算符也可以直接添加拥有相同类型的数组:
array += [7,8]
获取数组中数据项的时候,可以用索引来获取值:
var intV = array[0]
注:不管是OC还是Swift,数组的索引都是从0开始。
修改数组中的某一项时,也可以通过索引来改变:
array[0] = 9
此时数组就为:[9, 3, 4, 5, 6, 7, 8]
swift中也可以通过下标一次性改变多个数据值:
array[1...3] = [10,11,12]
此时数组值就是:[9, 10, 11, 12, 6, 7, 8]
在数组尾部添加新项时,不能使用下标来添加新项,此时数组越界,会引发一个运行期错误。
在某个具体索引值之前添加数据项,调用数组的insert(atIndex)来添加:
array.insert(13, atIndex: 0)
此时的数组值为:[13, 9, 10, 11, 12, 6, 7, 8]
同样的,移除数组的某一项时用removeAtIndex 方法;
移除最后一项的时候用removeLast
数组遍历
普遍的我们使用for-in循环来遍历数组中的所有数据项
for i in array
println(i)
swift提供一个enumerate函数来遍历数组,会同时返回数据项和索引值:
for (index, value) in enumerate(array)
println("index : \\(index) value: \\(value)")
此时打印的值为:
index : 0 value: 13
index : 1 value: 9
index : 2 value: 10
index : 3 value: 11
index : 4 value: 12
index : 5 value: 6
index : 6 value: 7
index : 7 value: 8
如果我们需要创建一个数组,该数组有特定的大小并且所有的数据都是被默认的,此时swift提供了一个数组构造函数:
var newArray = [String](count: 4, repeatedValue: "test")
当然,swift具有类型推断功能,我们也可以如下定义:
var newArray2 = Array(count: 3, repeatedValue: "today")
我们知道,两种数据项类型相同的数组我们可以通过(+)来组合到一起形成一个新的数组:
var newArray3 = newArray + newArray2
欢迎大家共同学习指导。
以上是关于Swift初见Swift数组的主要内容,如果未能解决你的问题,请参考以下文章