swift的数组是存放数据,相对object-c而言,swift更简单,对数组的元素的属性更加弱化,不需要强制数组元素是对象
数组的定义
//定义不可变数组 let arrt = ["a","b",1,[2,"l"]] //定义可变数组 var arr = ["a","b",1,[2,"l"]]
数组的长度
//数组的长度 用 count var arr = ["a","b",1,[2,"l"]] let length = arr.count print("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 第一个元素 == a arr 第二个元素 == b arr 第三个元素 == cde
数组元素的修改
//通过索引修改数组的值: var arr = [1,2,"s","c"] arr[1] = "g" print( "arr 第二个元素 == (arr)" ) //打印结果是: arr 第二个元素 == [1, g, s, c]
数组的遍历
//使用 for-in var arr = [String]() arr.append("one") arr.append("two") arr += ["three"] for element in arr { print(element) } //运行结果 one two three //使用 EnumerateSequence() 函数: for (index, element) in EnumerateSequence(arr) { print("arr[(index)] = (element)") } //运行结果 arr[0] = one arr[1] = two arr[2] = three
//swift3.0之后 用EnumerateSequence替代了enumerate
//数组 for in var 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"] //数组的遍历 while var i = 0 while i < arr.count{ print(arr[i]) i += 1 } //打印结果 0 1 2 3 4 5 注意 :i++ 在swift3 之后 更推荐使用 i += 1
数组的拼接
//两个类型相同的数组可以相加 var arr1 = [Int](count:3, repeatedValue: 2) var arr2 = [Int](count:3, repeatedValue: 1) var arrAdd = arr1 + arr2 for item in arrAdd { print(item) } //打印结果为: 2 2 2 1 1 1
空属性
//空属性(isEmpty)判断一个数组是否为空: var arr = [Int]() if arr.isEmpty{ print("arr 为空") }else{ print("arr 不为空") } //打印结果为: arr 为空
** 注意:此处的数组不能是 var arr = [] 这样定义,这样isEmpty系统会报错