引用类型和值类型区别

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。

4.4排序

Swift 的字典类型是无序集合类型。为了以特定的顺序遍历字典的键或值,可以对字典的keysvalues属性使用sort()方法。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值