Swift 3必看:sizeof移进MemoryLayout

在学习Swift 3的过程中整理了一些笔记,如果想看其他相关文章可前往《Swift 3必看》系列目录

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

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

let stringSize = MemoryLayout<String>.size

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

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

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

除了<code>sizeof</code>, MemoryLayout还可以获取<code>stride</code>,<code> alignment </code>。

欢迎关注我的微博:@没故事的卓同学

相关链接:
SE-0101-Reconfiguring sizeof and related functions into a unifiedMemoryLayout struct

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,283评论 4 61
  • 转载自:https://github.com/Tim9Liu9/TimLiu-iOS[https://github...
    香橙柚子阅读 8,817评论 0 36
  • 挑起最柔美的珠箔,把我激动的笑靥藏躲 簇拥着的不是烂漫的娇艳,而是轻柔的羞涩 黄昏时你微冷的步履,我呼吸间薄汗青衣...
    清夕凌雁阅读 377评论 0 0
  • 大四快要毕业了,今天还在班级群里讨论拍毕业照的事情,在准备毕业的时候,总觉得时间过得格外的快。 天天在宿舍准备毕业...
    太阳花xch阅读 130评论 0 0
  • 我以为我可以陪你走完整段回忆,却不想我们竟如此这般早早分离… 当从前还未遇到现在的你,走到哪我都会想着该有多好若身...
    草头青年阅读 281评论 0 0