1.普通的数据类型,和结构体、枚举等,是值类型,赋值时,会建立一个备份,给新的变量。
2.类、对象是引用类型,赋值时,并不会新建对象的副本,而是把对象的地址给新对象名。
所以,对象名中存储的并不是完整对象的内容,只存储了找到这个对象的地址。
3.Sets(集)
3.1概念
相同类型、没有固定顺序、数值不能重复的数据集合。
3.2哈希化
Swift中,所以默认的数据类型都是可以哈希化的。
只有能哈希化得数值才能存储在set中。类对象(引用类型)则不行。
对象相等,值得是两个对象名指向同一个对象。判断时,用===
3.3创建和使用
1)创建空Set
var 集名=Set<数据类型>()
2)添加
inert方法
3)直接用字面量构建
var 集名:Set <数据类型>=[ 值1,值2.,...,值n ]
或
var 集名:Set=[ 值1,值2,...,值n ]
4)count 属性,获取set中项数
5)isEmpty,bool值是否为空
6)remove方法,删除指定数值
7)container方法,监测指定值是否在set中存在,返回bool值
3.4遍历
因为set中没有顺序,所以不能使用普通for循环遍历,只能使用for in 遍历。
注意:
可以通过sort方法对set排序,返回一个按值排序的心set,一般用于遍历中。
3.5 set特殊操作
- 使用
intersect(_:)
方法根据两个集合中都包含的值创建的一个新的集合。 - 即:返回两集交集
- set a:1.2.3
- set b:2.3.6
- a.interset(b)
- //2
- a.exclusiveOr(b)
- 使用
exclusiveOr(_:)
方法根据在一个集合中但不在两个集合中的值创建一个新的集合。 - 即,两集所以元素,除去交集部分
- 使用
union(_:)
方法根据两个集合的值创建一个新的集合。 - 即,返回两集并集
- 使用
subtract(_:)
方法根据不在该集合中的值创建一个新的集合。 - 即,返回当前集合中排出交集的剩余项做为新集
4字典Dictionary
字典无序,每个项包含两个部分,键key和值value,所有键的数据类型要相同,但键和值得类型随意(可相同,可不同)。
键key的数据类型必须可哈希化(为值类型)
4.1创建
1)空字典
var 字典名 =[ 键数据类型:值数据类型 ]()
2)用字典字面量创建字典
var 字典名=[ 键1:值1,键2:值2,...,键n:值n]
4.2 访问和修改字典
1)isEmpty,count,使用方法与数组、集相同;
2)用下标语法访问指定项
字典名【key】访问指定key的字典项
4.3字典遍历的特点:
因为字典没有明显顺序,所以只能使用for in遍历,而不是使用for循环。
字典遍历比较特殊的点:可以遍历项,也可以单独遍历key,或单独遍历value
可以通过 字典名.keys获取所以键,也可以通过字典名.values 获取所以值
获取后的集合可以转换为数组,keys还可以转化为set。
Swift 的字典类型是无序集合类型。为了以特定的顺序遍历字典的键或值,可以对字典的keys
或values
属性使用sort()
方法。