加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift运行时简介

发布时间:2020-12-14 06:48:56 所属栏目:百科 来源:网络整理
导读:因为Swift的操作在高层并且也得与Objc联合起来干活,用Swift写的程序一般会被Objc和Swift运行时处理.因为Swift的本性——换句话说,它是一门静态语言——Swift运行时在一些关键地方和Objc运行时有很大的不同. 其中最大的最重要的一个不同就是Swift如何在运行时

因为Swift的操作在高层并且也得与Objc联合起来干活,用Swift写的程序一般会被Objc和Swift运行时处理.因为Swift的本性——换句话说,它是一门静态语言——Swift运行时在一些关键地方和Objc运行时有很大的不同.

其中最大的最重要的一个不同就是Swift如何在运行时处理方法的分发.

和Objc相反,Swift并不允许Objc中高动态的方法解析——消息传递.许多Objc经典的特性,比如响应并不在特定类中定义实现方法的消息,它使得”swizzle”方法(就是在运行时替换其他类中的方法)成为可能,并且它有能力在运行时定义方法,这在Swift中可是天方夜谭.

但怎么说呢,有得就有失,作为补偿Swift允许高类型安全,在理论上,改善了方法分发的性能.(Objc的方法分发机制与C++之类的语言相比会比较慢,因为实现上必须在运行时查找哈希表——尽管要感谢Objc运行时所做的一些技巧,性能损失一般可以忽略不计)

Swift不像Objc那样使用方法动态方法分发系统,作为替代Swift使用虚方法表(virtual method tables),或者成为tables.虚方法表也同样被用在C++语言的方法分发里哦.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读