【Swift】 Collections初识 - Dictionary(一)

4 篇文章 0 订阅

声明:此博客是本人在泊学网学习Swift过程的笔记与心得

Dictionary

通过key值来查询value值的数据结构

初始化

// 可以通过[key.Type: value.Type]的形式来代表Dictionary
let dic: [String: Int] = [
  "First": 1,
  "Second": 2,
  "Third": 3
]

可以通过key值来获取对应的value值

dic["First"] // 1
dic["Third"] // 3

而如果通过没有定义的key来获取值,则会返回一个nil
由于value的类型并不是单纯的value.Type而是Optional类型,因此可以设置成nil来代表key的不存在,于是,也可以通过设置key对应的value为nil来删除Dictionary中的值

dic["End"] // nil
// 删除First对应的value
dic["First"] = nil

常用属性

Keys

Dictionary可以通过keys属性来获取当前Dictionary中所有的key,获取的对象可以通过forEach或for等方式来遍历(返回对象的类型较复杂)

dic.keys.forEach { print($0) }
for key in dic.keys { print(key) }
Values

Dictionary可以通过values属性来获取当前Dictionary中所有的value,操作方式同Keys

增删改查

Swift中Dictionary对于增删改查有着极大的便利,增加元素只需要直接给Dictionary增加key与value就可以了,并不需要调用API

dic["Forth"] = 4

在上面写到过,删仅需要将key对应的value设置成nil即可

dic["Forth"] = nil

修改也是很简单的,就是把key对应的value修改即可

dic["First"] = 0

key对应value,通过key直接获取value

dic["First"] // 0

当然,这只是最基础的,如果需要遍历的操作,则可通过下面几种方式

遍历

首先说明,Dictionary中,key的存在是无序的,也就是说正常的遍历会得到不同顺序的结果
Dictionary无序截图

// 通过简单的for循环遍历
// dic中是按照key,value的形式排列的
for (key, value) in dic {
    print("\(key): \(value)")
}

// 通过forEach闭包遍历
// 当$0$1同时存在时,$0->key $1->value
dic.forEach { print("\($0): \($1)")}

// 当仅有$0存在时,$0->(key: xxx, value, xxx)
dic.forEach { print("\($0)") }

当然,如果强制要求按照固定的顺序遍历Dictionary也不是没办法,不过,就要从keys上动手脚
试想一下,如果keys的顺序每一次都是固定的,那么Dictionary其实也是固定顺序的了,下面是一个最简单的基于keys的排序实现:

for key in dic.keys.sorted() {
    print("\(key): \(dic[key]!)")
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值