众所周知,Swift中存在类和结构体,二者相似,却又不同;最大的差异,就是结构体是值类型,类是引用类型。
那么,这二者何时使用,该怎么区分呢?
根据我所学习的内容的总结,给出一些建议:
1、我们应该把结构体看做是值,类看做是物体。
值:例如经纬度、坐标、温度等,使用结构体比较合适。对于值类型,当我们定义一个值
a = 3
的时候,又让b = a
,此时我们修改a的值的时候,肯定不希望b跟着一起改变。物体:人、车、动物等,使用类比较合适。对于引用类型,描述的是一个物品,举个例子,你妈妈眼中的你和你同学眼中的你以及理发师眼中的你,都是同一个你,当你的理发师对你的发型进行改变的时候,你妈妈,你同学看到的你都是改变后的你。
2、对于事物需要被继承的,没得商量,肯定得要选择类,但是swift中有面向协议的编程范式,swift中对于一些继承,推荐的还是使用协议来进行。
3、结构体比类更为“轻量级”
结构体的内存空间是开在栈中,而类是开在堆中,从堆中寻找相应的地址,会比较慢。
这只是一些建议,具体项目中的情况千变万化,还是要根据需求来最终确定