类,函数, 闭包是引用类型
结构体, 枚举, Int ,Float, Double, String, Bool 是值类型
引用类型:实例是常量,成员类型是变量, 是可以修改成员变量类型
值类型: 对于上面的情况是不可以修改的
对于值类型改变自身,需要添加关键字 mutating
, 引用类型改变自己不需要添加, 如下:
// 该结构体是值类型, (枚举,结构体,基本类型都是值类型)
struct Location {
var latitable = 0
var longitable = 0
mutating func click () {
self.latitable = 2
}
}
`===`, `!==` 可以比较引用类型之间的比较,比较是否指向同一个内存空间
`==` 可以比较值类型是否相等
类和结构体比较
1.结构体===值;类===物体
2.结构体不可被继承;类可以被继承
3.结构体更加轻量级,小规模的类建议使用结构体
4.结构体较为高效,原因:结构体的内存空间在栈,类的内存空间在堆.堆中查找地址速度较慢