值类型,引用类型的let
截屏2022-02-17 下午2.19.07.png
1.在值类型中,只有自己的一份内存空间的,在该内存空间中,let申明就是不允许修改改内存空间的东西
2.引用类型中,Size对象创建出来的时候,只是一个指针,该指针有自己的内存空间,指针指向的才是该类真正的存着的东西,如果对类进行操作了,是会报错,但不会影响对成员属性就行修改,因为两者不是同一份内存空间
class Point {
// 16
var x = 11; // 8
var y = 22; // 8
var test = true // 1
}
在实际的内存使用中,首先创建一个类,基础空间就需要16,然后想x,y各占8个空间,bool类型占用一个,所以这个类至少需要 16 + 8 + 8 + 1 =33 然后根据对齐原则,就变成了16 + 8 + 8 + 8 = 40,最后在swift中malloc函数是16个字节对齐的,最后变成了 16 + 8 + 8 + 16 = 48
嵌套类型
截屏2022-02-17 下午2.40.13.png
枚举、结构体、类都可以定义方法
截屏2022-02-17 下午2.52.15.png
网友评论