工作生活

swift 内存 MemoryLayout

2019-07-02  本文已影响0人  sttech

普通变量内存

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
上一篇 下一篇

猜你喜欢

热点阅读