美文网首页
为什么说OC是一门动态语言?

为什么说OC是一门动态语言?

作者: 简书笔记存档 | 来源:发表于2017-06-19 16:44 被阅读0次

    什么是「动态语言」?这个概念其实没有一个明确的定义。基本上它是一个程度的度量。这个程度就是该语言的 runtime 到底使用多少 bookkeeping 数据。
    动态语言其实就是一个不断添加 bookkeeping 的过程。
    比如说,C++ 中为了实现多态还是不得不有一个中间机制,这就是虚表。但是你很难说虚表就是一个 bookkeeping 结构。因为它太简单了。而 Objective-C 就大大增加了对成员函数调用的 bookkeeping 机制。因为如此,所以 Objective-C 对 action-message 的实现就简单多了,因为你可以判断一个成员函数是否存在。而且也可以在不确定对象类型的情况下,指定一个方法作为回调函数。

    相关文章

      网友评论

          本文标题:为什么说OC是一门动态语言?

          本文链接:https://www.haomeiwen.com/subject/vptnqxtx.html