字典是一种用来存放相同类型的数据项的集合。和数组不同的是这些数据都以键值对的形式存在的,并且无序的。Swift中字典的概念和现实世界中的字典的概念很相似,都是通过索引(key)来查里面特定的值(value)。和数组类型一样,字典类型在Swift中也有两种写法:
1、完整版写法Dictionary<keyType,valueType>
2、简化版[keyType,valueType]
一、初始化一个空字典
创建空字典:使用字典类型的构造器来初始化一个空字典:
示例:@H_301_52@
- var demoDic = [Int : String]()
- // 为字典赋值
- demoDic[12] = "hello,Dictinary"
二、字典字面量
字典字面量是用方括号方法将“值”括起来,不同“值”之间用逗号隔开,字典中的每个值是一个键值对组合。
字典字面量格式:[key1:value1,key2:value2,key3:value3]
示例:
@H_301_52@ 三、字典的一些使用
- var week : [String : String] = ["yesterday":"Sunday","today":"Monday","tomorrow":"Tuesday"]
- // 简化写法:
- var week = ["yesterday":"Sunday","tomorrow":"Tuesday"]
1、通过count统计字典中键值对的个数
- println("week中含有\(week.count)个元素")
- // 打印week数目为3
2、通过isEmpty判断字典是否为空
- if week.isEmpty {
- println("week字典为空")
- }else{
- println("week字典非空")
- }
3、字典增加长度:字典中可以通过附属脚本的语法来增加其长度,示例:dic[key] = value;在插入新的键值对时必须和字典中所存储的键值对类型相匹配
@H_301_52@
- week["theDayBeforeYesterday"] = "Saturday"
- println("week字典数目\(week.count)")
- // 打印数目为4
4、修改已有键值
- week["today"] = "Mon"
- println("\(week)")
我们可以通过字典提供的updateValue(forKey:)方法来增添或者修改字典里的数据。需要指出的是:当使用updateValue(forKey:)方法为数组增加一个新的键值对时,该方法返回值为空,当用这个方法修改一个已存在键值对时,返回修改前的值。
修改一个值
- let oldValue = week.updateValue("Sun",forKey: "yesterday")
5、删除字典键值对
四、字典遍历
- let removeValue = week.removeValueForKey("yesterday")
同数组一样,字典遍历也需要使用for in循环。不过和遍历数组有所不同,对于字典遍历可以遍历字典键值对,也可以遍历键或者值的集合。
- // 1、遍历字典键值对
- for (weekKey,weekValue) in week
- {
- println("\(weekKey) : \(weekValue)")
- }
- // 2、遍历字典所有的键
- for weekKey in week.keys
- {
- println("\(weekKey)")
- }
- // 3、遍历字典所有值
- for weekValue in week.values
- {
- println("\(weekValue)")
- }