Swift学习笔记之---Dictionary字典
Posted 油醋三椒
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swift学习笔记之---Dictionary字典相关的知识,希望对你有一定的参考价值。
Dictionary字典类型
对于集合类型,在声时务必明确其类型,字典也是,字典由键和值两个部分组成,在声明字典时,也需要明确其键和值的类型。由两种方式可以进行字典的声明或者创建,示例代码如下:
// 声明字典[param1: param2]这种结构用于表示字典类型,param1为键类型,param2为值类型
var dic1: [Int: String]
// 这种方式和[:]效果一样,dic2与dic1为相同的类型
var dic2:Dictionary<Int, String>
// 字典创建与赋值
dic1 = [1: "1", 2: "2"]
dic2 = Dictionary(dictionaryLiteral: (1, "1"), (2, "2"))
// 创建字典时候,可以不显示声明字典的类型,可以直接赋初值来使编译器自动推断
var dic3 = [1: "1", 2: "2"]
// 创建空字典
var dic4: [Int:Int] = [:]
var dic5 = Dictionary<Int, Int> = Dictionary()
字典的键值是唯一的,字典支持使用isEmpty与count来判断是否为空并获取元素个数,示例代码如下:
// 获取字典中的元素个数
dic1.count
// 判断字典是否为空
if dic4.isEmpty
print("字典为空")
通过具体键可以获取与修改对应的值,示例如下:
// 通过键操作值
// 获取值
dic1[2]
// 修改值
dic1[1] = "0"
// 添加一对新的键值
dic1[4] = "4"
在对某个键进行赋值时,如果这个键存在,则会进行值的更新,如果这个键不存在,则会添加一对新的键值。然而在开发中,很多情况下需要对一个存在的键进行更新操作,如果这个键不存在,则不添加新键值对,要实现这种效果,可以使用Dictionary的更新键值方法,示例代码如下:
dic1.updateValue("1", forKey: 1)
updateValue(value:forkey:)方法用于更新一个已经存在的键值对,其中第1个参数为新值,第2个参数为要更新的键。这个方法在执行时会返回一个Optional类型的值,如果字典中此键存在,则会更新成功,并将键的旧值包装成Optional值返回,如果此键不存在,则会返回nil。在开发中,常常使用if-let结构来处理,示例如下:
if let oldValue = dic1.updateValue("1", forKey: 1)
print("Old Value is \\(oldValue)")
其实在通过键来获取字典中的值时,也会返回一个Optional类型的值,如果键不存在,则此Optional值为nil,因此也可以使用if-let结构来保证程序的安全性,示例如下:
if let value = dic1[1]
print("The Value is \\(value)")
可以实现对字典中键对值的删除操作:
// 通过键删除某个键值对
dic1.removeValue(forKey: 1)
// 删除所有键值对
dic1.removeAll()
在对字典进行遍历操作时,可以遍历字典中所有键组成的集合,也可以遍历字典中所有值组成的集合,通过Dictionary实例的keys属性与values属性分别可以获取字典的所有键与所有值,示例代码如下:
// 通过键来遍历字典
for item in dic2.Keys
print(item)
// 通过值来遍历字典
for item in dic2.values
print(item)
// 直接遍历字典
for item in dic2
print(item)
for (key, value) in dic2
print("\\(key) : \\(value)")
在进行字典键或者值遍历的时候,也支持对其进行排序遍历,示例如下:
// 从大到小排序遍历集合
for item in dic1.keys.sorted(by: >)
print(item)
以上是关于Swift学习笔记之---Dictionary字典的主要内容,如果未能解决你的问题,请参考以下文章