Swift之数组使用

来源:互联网 发布:linux wiki 编辑:程序博客网 时间:2024/05/07 02:59

Swift提供两种类型的集合,一种是数组Array,另外一种是字典Dictionary,他们之间的共同点是都是用来存储相同类型的数据,不同点是数组中存放的数据是有序的,二字典中存放的数据时无序的。字典还具有两外一个特性,就是字典中所存储的数据是键值对(key - value)形式存在。

这里主要写一下Swift中数组类型使用

一、数组类型定义

定义其他变量或者常量一样,如果我们在Swift中定义一个数据,也可以通过类型标注指定他的类型。在Swift中,数组类型有两种写法:

// 一是完整版:var colorArray : Array<String> = ["red","blue","green"]//另外一种是简化版var colorArray1 : [String] = ["red", "blue", "green"]// 可以使用推导来声明数组var colorArray2 = ["red", "blue","green"]var integerArray = [1,2,3]/*注:1、我们在定义数组时,指定数组中的数据类型,我们必须统一存放该类型数组    2、我们在定义数组时,不指定数组中的数据类型,则数组默认为anyObject类型。*/

二、我们在定义数组时可以不指定数组类型:

var inferList = ["eggs",123,true]for item in inferList{    println("inferList contain item : \(item)")}
需要指出的是这种情况下产生的数组时NSArray的数组。

判断数组是否为空,Swift中数组为空判断可以直接调用isEmpty方法

if inferList.isEmpty {    println("inferList为空")}else{    println("inferList不空")}

也可以采用数组元素个数进行判断:

if inferList.count == 0 {    println("inferList为空")}else{    println("inferList不空")}


三、swift提供两种方法为数组添加元素

第一种:通过调用数组的内嵌方法(append)为数组添加新元素

inferList.append("hello")

第二种:通过加法赋值运算符来为当前数组添加新元素

inferList += ["你好"]

/*

第二种方法更为强大的是可以进行批量添加,批量添加的数组只能存放一种数据类型

inferList += ["红茶","绿","黑茶"]

*/


四、修改数组元素

swift中修改数组中元素可以先通过数组名+方括号+下标的方式来获取数组中某个元素的值

 获取inferList第一个元素

var firseItem = inferList[0]

 修改具体元素的值

inferList[0] = "egg"

 Swift提供了批量修改数组元素的功能

inferList[4...6] = ["呵呵","嘿嘿"]/*这种情况下,4、5元素被修改,6及以后元素被移除,若不移除则 <span class="s1" style="font-family: Arial, Helvetica, sans-serif;">inferList</span><span class="s2" style="font-family: Arial, Helvetica, sans-serif;">[</span><span class="s3" style="font-family: Arial, Helvetica, sans-serif;">4</span><span class="s2" style="font-family: Arial, Helvetica, sans-serif;">...</span><span class="s3" style="font-family: Arial, Helvetica, sans-serif;">6</span><span class="s2" style="font-family: Arial, Helvetica, sans-serif;">] = [</span><span class="s4" style="font-family: Arial, Helvetica, sans-serif;">"</span><span class="s5" style="font-family: Arial, Helvetica, sans-serif;">呵呵</span><span class="s4" style="font-family: Arial, Helvetica, sans-serif;">"</span><span class="s2" style="font-family: Arial, Helvetica, sans-serif;">, </span><span class="s4" style="font-family: Arial, Helvetica, sans-serif;">"</span><span class="s5" style="font-family: Arial, Helvetica, sans-serif;">哈哈</span><span class="s4" style="font-family: Arial, Helvetica, sans-serif;">"</span><span class="s2" style="font-family: Arial, Helvetica, sans-serif;">, </span><span class="s4" style="font-family: Arial, Helvetica, sans-serif;">"</span><span class="s5" style="font-family: Arial, Helvetica, sans-serif;">嘻嘻</span><span class="s4" style="font-family: Arial, Helvetica, sans-serif;">"</span><span class="s2" style="font-family: Arial, Helvetica, sans-serif;">]</span>*/

五、 为数组插入、移除元素

Swift中通过调用insert(atIndex:)方法在数组的任意指定位置插入一个新的元素

inferList.insert("insertElements", atIndex: 0)

Swift中通过调用removeAtIndex方法移除指定位置元素,其他元素自动前移

inferList.removeAtIndex(0)

第一个位置"insertElements"被移除

也可以使用removeLast(),移除最后一个元素

inferList.removeLast()

最后一个元素"黑茶"被移除


六、数组遍历
在Swift中数组遍历一共有两种方法:

1、通过for in 循环快速遍历数组

for item in inferList {    println(item)}

2、通过enumerate全局函数来便利数组,这个函数将会将数组中的元素作为一个类型为(index,value)元祖返回

for (var (index,value)) in enumerate(inferList) {    println("item : \(index), value : \(value)")}







0 0