Files
SwiftStudy/08 类.playground/Resources/README.md
2022-01-06 23:03:08 +08:00

859 B
Raw Blame History

结构体与类的本质区别

  • 结构体是值类型(枚举也是值类型),类是引用类型(指针类型) 值类型存储在栈空间,引用类型存储在堆空间
// 类
class Size {
    var width = 1
    var height = 2
}
// 结构体
struct Point {
    var x = 3
    var y = 4
}
// 方法体
func test() {
    var size = Size()
    var point = Point()
}

test()方法在内存中的存储结构 jiulinxiri_20220106223910.png

  • point结构体是值类型在内存中存储的是值
  • size类是引用类型在内存中存储的是Size对象的内存地址

jiulinxiri_20220106224431.png

  • 前边16个字节存储的是指向类型信息以及引用计数
  • 后边的16个字节存储的是成员变量