前言
struct和class是swift的两大数据结构,理解struct和class对我们学习swift的帮值很大
重点
-
struct是一个值类型的数据结构,而class是一个引用类型的数据结构
- class声明对象时用的是let,但它能够修改class类里面变量的值是因为:let是定义为常量,那么对象对类的引用不可以改变,但还是可以修改类的值的
- struct声明对象为var类型,因为struct是值类型,那么对象就类似于一个值,当要改变其内部的值时,var是可行的,let则会报错
- 如果在struct里面添加方法来修改属性的值,那么要在方法的前面加上mutating,class上不用
struct structtest {
var d = 30
mutating func a(add:Int) {
d = d + add
}
}
- struct是存放在栈空间上的,而class是存放在堆空间上的,因此使用struct的访问速度会更快