您的位置:首页 > 移动开发 > Swift

Swift之数组使用

2015-07-12 10:15 411 查看
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)")
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: