iOS面试题-为什么说iOS是一门动态编程语言?

1.为什么说iOS是一门动态编程语言?

a:

动态语言:(Dynamic programming Language -动态语言或动态编程语言),动态语言是指程序在运行时可以改变其结构,新的函数可以被引进,已有的函数可以被删除等在结构上的变化。比如Ruby,Python等就是动态语言,而c,c++等语言则不属于动态语言。

Dynamically Typed Language(动态类型语言)
所谓的动态类型语言,就是类型的检查是在运行时做的。

延伸

静态类型(Statically Typed Language-静态类型语言)
而静态类型语言的类型判断是在运行前判断(如编译阶段),比如c#,java就是静态类型语言,静态类型语言为了达到多态(oc支持方法名的多态但不支持参数和操作符的多态),会采取一些类型鉴别手段,如继承,接口,而动态类型语言则不需要,所以一般动态语言都会采用动态类型(Dynamically Typed),常出现于脚本语言中。
静态语言的优缺点:
优点:其结构非常规范,便于调试,方便类型安全;
缺点:需要写更多的类型相关代码,导致不便于阅读,不清晰明了。
动态语言的优缺点:
优点:方便阅读,不需要写非常多的类型相关代码;
缺点:不方便调试,命名不规范时会造成读不懂,不利于理解等。
3.Objective-c的动态运行性
Objective-c是c语言的一个子类,所以objective-c是一个静态语言,但objective-c的三大特性之一的多态性让其拥有了动态性。
objective-c的动态性,让程序在运行时判断其该有的行为,而不是像c等静态语言在编译构建时就确定下来。它的动态性主要体现在3个方面:
1.动态类型:如id类型。实际上静态类型因为其
固定性和可预知性而使用的特别广泛。静态类型是强类型,动态类型是弱类型,运行时决定接收者。
2.动态绑定:让代码在运行时判断需要
调用什么方法,而不是在编译时。与其他面向对象语言一样,方法调用和代码并没有在编译时连接在一起,而是在消息发送时才进行连接。运行时决定调用哪个方法。
3.动态载入。让程序在运行时添加代码模块以及其他资源。用户可以根据需要执行一些可执行代码和资源,而不是在启动时就加载所有
组件。可执行代码中可以含有和程序运行时整合的新类。

转载

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

推荐阅读更多精彩内容

  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,217评论 30 472
  • 转:http://www.cocoachina.com/programmer/20151019/13746.htm...
    Style_伟阅读 1,343评论 0 3
  • 之前看了很多面试题,感觉要不是不够就是过于冗余,于是我将网上的一些面试题进行了删减和重排,现在分享给大家。(题...
    Job_Yang阅读 12,111评论 12 143
  • 【题目描述】 Given a string which contains only letters. Sort i...
    代码码着玩阅读 251评论 0 0
  • 苍松因为孤傲 才长出了枝繁叶茂 野草因为孤傲 才遍地了绿野新荒 劲鹰因为孤傲 才飞翔了白云蓝天 我呢,我因为什么而...
    寂寞空间阅读 176评论 0 2