金氧

Swift 3:sizeof移进MemoryLayout

sizeof这个方法名直接取自C语言,但是实际上LLVM中并没有一个函数叫sizeof。而且sizeof的使用范围很窄,不像map,filter这种经常会全局用到。所以重新定义了一个结构体 MemoryLayout来实现原来sizeof的功能,使用上也有变化。

主要有两种方式,一种是直接通过泛型参数从静态变量获取:

let stringSize = MemoryLayout<String>.size

也可以通过调用静态方法获取

let stringValue = "A"
let varSize = MemoryLayout.size(ofValue: stringValue)

两者都会得到正确的结果。

除了sizeof, MemoryLayout还可以获取stride, alignment。

« CLOSE_WAIT 问题分析 Xcode 8:在Active Compilation Conditions中自定义环境变量 »