swift的数组是存放数据,相对object-c而言,swift更简单,对数组的元素的属性更加弱化,不需要强制数组元素是对象
数组的定义
//定义不可变数组let arrt = ["a","b",1,[2,"l"]]//定义可变数组var arr = ["a","b",1,[2,"l"]]
数组的长度
//数组的长度 用 countvar arr = ["a","b",1,[2,"l"]]let length = arr.countprint("length = \(length)")//打印结果 length = 4
创建空数组
//创建空数组 -- 直接定义var arr1 = []//规定数组元素的的类型,与swift1 的写法有所不同 这块需注意var arr2 = [String]()
创建一个给定的大小,并用初始值的数组
var arr = [String](count: 4, repeatedValue: "s")print("arr = \(arr)")//打印结果为:arr = ["s", "s", "s", "s"]
//创建一个有四个元素的数组,并指定四个值的数组: var arr:[Int] = [1, 2, 3,4]print("arr = \(arr)")//打印结果为:arr = [1, 2, 3, 4] ** 注意:
当赋值与规定的类型不符时程序就会报错
数组的取值
//直接通过下标取值 这和 oc一样var arr:[Int] = [1, 2, 3,4]var someObj = arr[1]print("someObj = \(someObj)")//打印结果为:someObj = 2
数组添加元素
//一种是使用 append() 方法 一种是直接赋值(+=)var arr = [String]()arr.append("a")arr.append("b")arr += ["cde"]print( "arr == \(arr)" )print( "arr 第一个元素 == \(arr[0])" )print( "arr 第二个元素 == \(arr[1])" )print( "arr 第三个元素 == \(arr[2])" )//打印结果是:arr == ["a", "b", "cde"]arr 第一个元素 == aarr 第二个元素 == barr 第三个元素 == cde
数组元素的修改
//通过索引修改数组的值:var arr = [1,2,"s","c"]arr[1] = "g"print( "arr 第二个元素 == \(arr)" )//打印结果是:arr 第二个元素 == [1, g, s, c]
数组的遍历
//使用 for-invar arr = [String]()arr.append("one")arr.append("two")arr += ["three"]for element in arr { print(element)}//运行结果onetwothree//使用 EnumerateSequence() 函数:for (index, element) in EnumerateSequence(arr) { print("arr[\(index)] = \(element)")}//运行结果arr[0] = onearr[1] = twoarr[2] = three
//swift3.0之后 用EnumerateSequence替代了enumerate
//数组 for invar arr = [String]()for index in 0...5{ arr.append("\(index)")}print("arr = \(arr)")//打印结果arr = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]//数组的遍历 whilevar i = 0while i < arr.count{ print(arr[i]) i += 1}//打印结果012345注意 :i++ 在swift3 之后 更推荐使用 i += 1
数组的拼接
//两个类型相同的数组可以相加var arr1 = [Int](count:3, repeatedValue: 2)var arr2 = [Int](count:3, repeatedValue: 1)var arrAdd = arr1 + arr2for item in arrAdd { print(item)}//打印结果为:222111
空属性
//空属性(isEmpty)判断一个数组是否为空:var arr = [Int]()if arr.isEmpty{ print("arr 为空")}else{ print("arr 不为空")}//打印结果为:arr 为空
** 注意:此处的数组不能是 var arr = [] 这样定义,这样isEmpty系统会报错