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

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

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

推荐阅读更多精彩内容