字典是一种存储多个相同类型的值的容器,就是键值对,跟js中的json一样吧!
用字典字面量创建字典
访问和修改字典
移除字典中的某个元素
字典遍历
用字典的keys,values来创建数组
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)"
)
}
|
1
2
3
|
let airportsCode = [String](airports.keys)
//拥有一定排序能力的keys
let airportsSortCode = [String](airports.keys.sort())
|