听说Swift很NB,那么来勉强学点(3.3)--集合类型字典Dictionary

字典是一种存储多个相同类型的值的容器,就是键值对,跟js中的json一样吧!
Swift的字典使用Dictionary<Key,Value>定义,其中Key是字典中键的数据类型,Value是字典中对应于这些键所存储值的数据类型。
注意:一个字典的Key类型必须遵循Hashable协议,就像前面我们提到的Set的值的类型,也要遵循Hashable协议。

创建一个空字典
1
2
3
var namesOfIntegers = [Int:String]()
namesOfIntegers[16] =  "sixteen"
namesOfIntegers = [:]
用字典字面量创建字典
1
2
3
var airports:[String:String] = [ "XYZ" : "Toronto Pearson" , "DUB" : "Dublin" ]
//因为Swift可以推断出类型,所以也可以等价为
var airports = [ "XYZ" : "Toronto Pearson" , "DUB" : "Dublin" ]
访问和修改字典
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//使用count来获取字典的元素个数
airports.count
//使用isEmpty来判断字典元素个数是否为0
if  airports.isEmpty{
 
}
//字典下标语法
airports[ "LHR" ] =  "London"   //重新设置新的键值对
airports[ "LHR" ] =  "London Heathrow"  //修改某个键对应的值
 
//使用updateValue(_:forKey:) ,返回值当前key所对应的旧值或nil,也就是说返回值是一个optional类型的值
if  let oldValue = airports.updateValue( "Dublin Airport" ,forKey: "DUB" ){
     print( "\(oldValue)" )
}
 
//同样下标语法来获取某个键对应的值得到的也是optional类型的值
if  let airportName = airports[ "DUB" ]{
     print( "\(airportName)" )
} else {
     print( "nil" )
}
移除字典中的某个元素
1
2
3
4
5
6
7
8
9
10
airports[ "APL" ] =  "Apple Internation"
//通过赋值为nil来移除字典的某个键所对应的元素
airports[ "APL" ] = nil
 
//使用removeValueForKey(_:),返回旧值或nil
if  let removedValue = airports.removeValueForKey( "DUB" ){
     print( "\(removedValue)" )
} else {
     print( "nil" )
}
字典遍历
1
2
3
4
5
6
7
8
9
10
11
for  (airportCode,airportName) in airports{
     print( "\(airportCode):\(airportName)" )
}
 
//使用字典的keys,values属性来获取所有的key和value值
for  airportCode in airports.keys{
     print( "\(airportCode)" )
}
for  airportName in airports.values{
     print( "\(airportName)" )
}
用字典的keys,values来创建数组
1
2
3
let airportsCode = [String](airports.keys)
//拥有一定排序能力的keys
let airportsSortCode = [String](airports.keys.sort())

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值