swift中dictionary字典的使用

Swift 字典用来存储无序的相同类型数据的集合,Swift字典会强制检测元素的类型,如果类型不同则会报错。

Swift字典每个值(value)都关联唯一的键(key),键作为字典中的这个值数据的标识符。

和数组中的数据项不同,字典中的数据项并没有具体顺序。我们在需要通过标识符(键)访问数据的时候使用字典,这种方法很大程度上和我们在现实世界中使用字典查字义的方法一样。

Swift字典的key没有类型限制可以是整型或字符串,但必须是唯一的。

如果创建一个字典,并赋值给一个变量,则创建的字典就是可以修改的。这意味着在创建字典后,可以通过添加、删除、修改的方式改变字典里的项目。如果将一个字典赋值给常量,字典就不可修改,并且字典的大小和内容都不可以修改。


[objc]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. // 创建字典  
  2. // 创建一个特定类型的空字典,格式为:var dict = [KeyType: ValueType]()  
  3. // 创建一个空字典,键的类型为 Int,值的类型为 String 的简单语法:  
  4. var dict01 = [Int: String]()  
  5. print(dict01)  
  6.           
  7. // 创建一个字典的实例:  
  8. var dict02 :[Int:String] = [1:"One", 2:"Two", 3:"Three"]  
  9. print(dict02)  
  10.           
  11. var dict03 = ["name":"DevZhang""job":"iOSDev""company":"VSTECS"]  
  12. print(dict03)  
[objc]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. // 访问字典  
  2. // 我们可以根据字典的索引来访问数组的元素,语法如下:var value = dict[key]  
  3. let value01 = dict02[1]  
  4. print(value01)  
  5.           
  6. let value02 = dict03["name"]  
  7. print(value02)  
[objc]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. // 添加数据  
  2. let value03 = dict02.updateValue("Four", forKey4)  //或 dict02[4] = "Four"  
  3. print(value03)  
  4. print(dict02)  
[objc]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. // 修改字典  
  2. // 方法1 使用 updateValue(forKey:) 增加或更新字典的内容。如果 key 不存在,则添加值,如果存在则修改 key 对应的值。格式为:dict.updateValue(value, forKey:key)方法返回Optional值。  
  3. var value04 = dict02.updateValue("TwoTmp", forKey2)  
  4. print(dict02)  
  5. print(value04)  
  6.    
  7. // 方法2 通过指定的 key 来修改字典的值  
  8. var value05 = dict02[3]  
  9. print(value05)  
  10. value05 = "ThreeTmp" // 修改无效  
  11. print(dict02)  
  12. dict02[3] = "ThreeTmp" // 修改有效  
  13. print(dict02)  
[objc]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. // 移除 Key-Value 对  
  2. // 1 使用 removeValueForKey() 方法来移除字典 key-value 对。如果 key 存在该方法返回移除的值,如果不存在返回 nil 。  
  3. let valueRemove01 = dict02.removeValueForKey(2)  
  4. print(valueRemove01)  
  5. print(dict02)  
  6.           
  7. // 2 通过指定键的值为 nil 来移除 key-value(键-值)对。  
  8. dict02[1] = nil  
  9. print(dict02)  
[objc]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. // 遍历字典  
  2. // 1 使用 for-in 循环来遍历某个字典中的键值对。  
  3. for (key, value) in dict03  
  4. {  
  5.  print("字典 key \(key) -  字典 value \(value)")  
  6. }  
  7.           
  8. // 2 使用enumerate()方法来进行字典遍历,返回的是字典的索引及 (key, value) 对  
  9. for (key, value) in dict03.enumerate()  
  10. {  
  11.  print("字典 key \(key) -  字典 (key, value) 对 \(value)")  
  12. }  
  13.   
  14. // 3   
  15. for key in dict03.keys  
  16. {  
  17.  let value = dict03[key]  
  18.  print("key = \(key), value = \(value)")  
  19. }  
[objc]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. // 字典转换为数组  
  2. // 提取字典的键值(key-value)对,并转换为独立的数组。  
  3. let dictKeys = [String](dict03.keys)  
  4. for (key) in dictKeys  
  5. {  
  6.  print("\(key)")  
  7. }  
  8.           
  9. let dictValues = [String](dict03.values)  
  10. for (value) in dictValues  
  11. {  
  12.  print("\(value)")  
  13. }  
[objc]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. // count 属性  
  2. let count01 = dict03.count  
  3. print(count01)  
[objc]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. // isEmpty 属性  
  2. let empty01 = dict01.isEmpty  
  3. print("dict01 is \(empty01)")  
  4.           
  5. let empty02 = dict03.isEmpty  
  6. print("dict03 is \(empty02)")  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值