【Swift】 Collections初识

来源:互联网 发布:宜人贷淘宝验证不了 编辑:程序博客网 时间:2024/06/05 22:43

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

Dictionary

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

初始化

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

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

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

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

dic["End"] // nil// 删除First对应的valuedic["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->valuedic.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]!)")}
原创粉丝点击