- 数组(Arrays)
- 创建并构造数组
- 数组的增删改查
- 数组的遍历
- 字典(Dictionaries)
- 创建字典字面量
- 字典的增删改查
- 字典的遍历
- 总结
数组(Arrays)
在OC里面,NSArray和NSMutableArray这两个类可以存储任意类型的对象,并且不提供所返回对象的任何特别信息。
在Swift中,数据值被存入某个数组之前类型必须明确。方法是通过显式的类型标注或者类型推断,而且不是必须是class
类型。
|
|
Note:
当然你也可以省略类型标注,因为Swift可以根据你的内容推断出正确的类型,如下面的代码。
|
|
创建并构造数组
|
|
数组的增删改查
增(插入数据)
Swift中往数组里面插入数据有多种方式:
1)append()
方法1shoppingList.append("Flour")2)
insert(atIndex:)
方法1shoppingList.insert("Maple Syrup", atIndex: 0)3)
+=
赋值运算符1shoppingList += ["Baking Powder"]删(删除数据)
通过
removeAtIndex()
方法移除指定位置的数据项。这个方法把数组在特定索引值中存储的数据项移除并且返回这个被移除的数据项(返回的数据项如果不用的时候可以无视):1let mapleSyrup = shoppingList.removeAtIndex(0)通过
removeLast()
方法可以移除最后一项数据项1let apples = shoppingList.removeLast()改(更新数据)
12345//通过指定某一项更新数据项shoppingList[0] = "Six eggs"//通过区间更新区间内数据项shoppingList[4...6] = ["Bananas", "Apples"]Note:
我们不能使用下标语法在数组尾部添加新项。如果我们试着用这种方法对索引越界的数据进行检索或者设置新值的操作,我们会引发一个运行期错误。我们可以使用索引值和数组的count属性进行比较来在使用某个索引之前先检验是否有效。除了当count
等于 0 时(说明这是个空数组),最大索引值一直是count - 1
,因为数组都是零起索引查(访问数据)
12345//获取第0项数据并赋值给变量firstItemvar firstItem = shoppingList[0]//获取某个区间的数据项并赋值给另外一个数值let tempArr = shoppingList[1...2]
数组的遍历
通过for-in
循环遍历数组中的数据项:
[方式一]
|
|
控制台打印:
Danny
Johnnie
Mike
[方式二]
|
|
控制台打印:
idx:0 value:Danny
idx:1 value:Johnnie
idx:2 value:Mike
字典(Dictionaries)
创建字典字面量
OC里面,字典字面量的格式是:@{@"key" : @"value"}
,而Swift里面,字典字面量以及数组字面量均使用中括号[]
包住。格式为:[key 1: value 1, key 2: value 2, key 3: value 3]
|
|
|
|
字典的增删改查
增(插入数据)
在字典中使用下标语法来添加新的数据项。可以使用一个合适类型的 key 作为下标索引,并且分配新的合适类型的值:
1airports["LHR"] = "London"删(删除数据)
通过
removeValueForKey()
方法在字典中移除键值对。这个方法在键值对存在的情况下会移除该键值对并且返回被移除的value或者在没有值的情况下返回nil
:12//通过键值“DUB”移除对应的值let removedValue = airports.removeValueForKey("DUB")改(更新数据)
通过使用下标语法来改变特定键对应的值:
12//使用下标语法来改变特定键对应的值airports["LHR"] = "London Heathrow"也可以通过
updateValue(forKey:)
方法设置或者更新特定键对应的值。这个方法还会返回更新值之前的原值或者nil
,方便我们检查更新是否成功:12//通过“DUB”键将旧值更新为“Dublin Internation”let oldValue = airports.updateValue("Dublin Internation", forKey: "DUB")查(访问数据)
使用下标语法来在字典中检索特定键对应的值。由于使用一个没有值的键这种情况是有可能发生的,可选类型返回这个键存在的相关值,否则就返回
nil
:12345if let airportName = airports["DUB"] {print("DUB键对应的值为: \(airportName).")} else {print("DUB键没有对应的值")}
控制台打印:
DUB键对应的值为: Dublin Internation.
字典的遍历
[方式一]
通过for-in
循环遍历某个字典中的键值对。每一个字典中的数据项都由(key, value)元组形式返回,并且我们可以使用临时常量或者变量来分解这些元组:
|
|
控制台打印:
TYO: Tokyo
LHR: London Heathrow
[方式二]
我们也可以通过访问它的keys
或者values
属性检索一个字典所有的键、值:
|
|
控制台打印:
该字典的键:LHR
该字典的键:TYO
该字典的值:London Heathrow
该字典的值:Tokyo
Note:
当你想要将字典的键、值分别存起来的话,可以使用数组的APIArray()
进行存储
|
|
总结
目前本人就先简单的介绍数组、字典的一些简单的使用,后期会不断的完善这篇文章。再一次感谢您花费时间阅读这篇文章!
再一次感谢您花费时间阅读这篇文章!
微博: @Danny_吕昌辉
博客: SuperDanny