普通变量内存
var age = 10
MemoryLayout<Int>.size // 10
MemoryLayout<Int>.stride // 8
MemoryLayout<Int>.alignment // 8
MemoryLayout.size(ofValue: age) // 8
枚举内存
enum Passwd { // 这种是关联值 关联值会被存入枚举变量的内存中
case number(Int,Int,Int,Int)
case other
}
var pwd = Passwd.number(1, 1, 1, 1)
MemoryLayout.size(ofValue: pwd) // 33
MemoryLayout<Passwd>.size // 实际可能用到的空间大小 33
MemoryLayout<Passwd>.stride // 分配占用的空间大小 40
MemoryLayout<Passwd>.alignment // 对齐参数 8
enum Session { // 这种是原始值(固定值) 不会存入枚举变量的内存中 原始值永远跟值绑定在一起,而且不允许在外部赋值
case spring,summer,autumn,winter
}
MemoryLayout<Session>.size // 实际可能用到的空间大小 1
MemoryLayout<Session>.stride // 分配占用的空间大小 1
MemoryLayout<Session>.alignment // 对齐参数 1
网友评论