《Swift进阶》内建集合类型 字典

Swift 中另外一个关键的数据结构就是Dictionary,字典。字典包含键以及对应的值。在一个字典中,每个键都只能出现一次。通过键来取值所花费的平均时间是常量级的(数组中寻找特定的元素花的时间与它的数组的尺寸成正比)。和数组不同的是字典是无序的,遍历字典的键值对时,顺序是不确定的。

我们可以用下标来获取值(比如dict[“Name”]),字典查找将返回可选值,不存在的时候返回nil。这里和数组不同,使用越界下标访问程序将会崩溃。

字典是一种稀疏结构,即使在name键下有值,你也没办法确定address键下面是否有值。 (更多…)

《Swift进阶》内建集合类型 数组

数组和可变性

在swift中,使用let定义的数组为不可变的数组,使用var定义的数组为可变数组。在不可变的数组中使用append这样的方法,会得到一个编译错误。

swift的Array数组是struct值类型,当复制到新变量的时候里面的值会被复制,也就是说改变其中一个变量,另外一个变量不会受到影响。

在Foundation框架中的NSArray和NSMutableArray是引用类型的class,因为引用类型的特性,使用let并不能保证这个数组不会被改变。

如果使用Foundation框架中的数组,为了安全,赋值最好使用copy方法进行。 (更多…)