sizeof
这个方法名直接取自C语言,但是实际上LLVM中并没有一个函数叫sizeof
。而且sizeof
的使用范围很窄,不像map
,filter
这种经常会全局用到。所以重新定义了一个结构体 MemoryLayout
来实现原来sizeof
的功能,使用上也有变化。
主要有两种方式,一种是直接通过泛型参数从静态变量获取:
1 |
let stringSize = MemoryLayout.size |
也可以通过调用静态方法获取
1 2 |
let stringValue = "A" let varSize = MemoryLayout.size(ofValue: stringValue) |
两者都会得到正确的结果:
除了sizeof
, MemoryLayout还可以获取stride
, alignment
。
欢迎关注我的微博:@没故事的卓同学
相关链接:
SE-0101-Reconfiguring sizeof and related functions into a unifiedMemoryLayout struct