Swift(九)数组
2016-10-30 本文已影响42人
冰三尺
0834557c10a0f4dd7b075969bec8bce11a65ef5299e4f-pAeeVz_fw658.jpeg
数组是一系列相同类型的数据集合,存储相同类型的可重复的有序的多个数据
Swift 数组存储特定类型的值。不同于 Objective - C 的 NSArray 和 NSMutableArray 类:它们可以存储任何类型的对象,而且不提供对象的本质任何信息。
创建一个有默认值的数组
var list = [Int](repeatElement(3, count: 10))
//[3, 3, 3, 3, 3, 3, 3, 3, 3, 3]
创建一个有序的范围的数组
let ary = Array(0...10)
//[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
-----------------------------------
//二者等价
var shoppingList: [String] = ["Eggs", "Milk"]
var shoppingList1 = ["Eggs", "Milk"] //swift 类型自动推断为swift
//初始化一个空数组, 数组元素类型为String
var array:[String] = []
或
var array = [String]()
array.append("11")
print(array)
通过下标改变一系列数据值,即使新数据的数量和原有数据的数量是不一样的。
var shoppingList: [String] = ["Eggs", "Milk", "Bananas"]
shoppingList[0...1] = ["Apple"] //把下标从0到1的元素替换成"Apple"
print(shoppingList) //["Apple", "Bananas"]
shoppingList.insert("Maple Syrup", at: 0) //在0的位置插入一个元素
shoppingList.remove(at: 0) //移除某个位置的元素
//移除从最后一个位置开始计算, 向前计算, 移除最后两个元素
shoppingList.removeLast(2)
使用 for-in 循环遍历数组中所有元素:
for item in shoppingList {
println(item)
}
如果同时需要每个元素的值和索引值,可以使用全局函数 enumerate 来进行数组遍历。enumerate 返回一个由元素索引值和数据值组成的键值对。我们可以把这个键值对分解成临时常量或者变量来进行遍历:
for (index, value) in shoppingList.enumerated() {
print("Item \(index + 1): \(value)")
}
使用加法操作符(+)来合并两种相同类型的数组:
var ary1 = [1, 2]
var ary2 = [3, 4]
var ary3 = ary1 + ary2 //[1, 2, 3, 4]
//把一个数组添加到另一个数组, 类似addObjectsFromArray
ary1.append(contentsOf: ary2)
//声明一个数组, 并初始化
var array:[String] = []
//声明一个数组, 未初始化, 可选类型
var array1:Array<String>?
//声明一个数组, 并初始化
var array2 = [String]()
//声明一个数组并初始化
var array3:Array<Int> = Array<Int>()
hide_icon_list.count
hide_icon_list1?.count
hide_icon_list2.count
获取数组某个元素的位置
var fiveInts = [1, 2, 3, 4, 5]
let one = fiveInts.index{ $0 == 3 }
//2