基本类型的集合有Array,Set,和Dictionary
由于我是编程小学生,为了记忆方便,我使用统一的格式,都是显式声明。
一、声明一个空数组:
var array: Array = []
二、声明一个空Set:
var set: Set = []
三、声明一个空字典:
var dic: Dictionary<String, (String, Int, String, Int)> = [:]
说明一下,字典的声明中,第一个位置是key,后面剩下的都是value。而且前面声明过程中,没有冒号,只有等号后面才有冒号。key可以print可以打印出来,也可以只当桌索引不打印出来。
假设现在有一个数组,这个数组里面有10个元素。每个元素又是一个元组,这个元组包括了3个值。
问:怎么把这个数组导入到字典中呢?
思考逻辑:
这个数组有10个元素,那么,就可以用for loop来遍历整个数组。
其次,针对每一个元素有3个值,我们可以选取其中1个值作为key,另外两个值作为value。通过对元组内各个值的操作,形成1个key对应2个value的映射。
dic[tuple.0] = (tuple.1, tuple.2)
这就形成了1个key对应2个value的映射
遍历使用for i in array{}的方法
建立空字典用显示命名的方式:
var dic: Dictionary<中文名: String, (英文名: String, 介绍: String) = [:]
写代码的时候把逻辑反过来
先建立空字典。
再for循环
再把tuple拆开,1个key对应2个value。
头一次学习了内存管理操作。
.reserveCapacity() 提前给程序流出内存。要不然,分配的内存不够的时候,就需要扩容。扩容的方法是,先找一块大一点的地方,再把元数据拷贝过去。要是多次扩容的话,就需要多次复制,浪费性能。
还有一个类似的方法是在程序初始的时候使用.init(minimumCapacity: )作用也是一样的。这个方法可以用于Set和Dictionary。
括号内只能写整数。