• Objective-C和Swift语言特性


    什么是动态类型语言?

    • 动态类型语言:
      1. 程序运行时,可以改变程序结构,引入新的函数、已有的函数可以被删除等结构上的变化。
      2. 在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。JavaScript、Python、Ruby

    什么是静态类型语言?

    • 静态类型语言: 数据类型是在编译期间检查的,也就是说在写程序时声明所有变量的数据类型。 C/C++, Java

    为什么说Objective-C是一门动态的语言?

    Objective-C虽然在写程序时声明了变量的数据类型, 但在编译期间并没有检查。因为Objective-C类和对象都是在运行时创建的,所以编译期间没办法检查。

    Objective-C是C的超集,在C语言的基础上添加了面向对象特性,并且利用Runtime运行时机制,为Objective-C增添了动态的特性。

    通过Runtime运行时机制,在运行时动态的添加变量、方法、类等,所以说Objective-C是一门动态的语言。

    Objective-C使用的是“消息结构”并非“函数调用”:使用消息结构的语言,其运行时所应执行的代码由运行期决定;而使用函数调用的语言,则由编译器决定。

    Objective-C利用Runtime可以在运行的时候创建类,修改类,修改对象调用的方法。

    Objective-C 是具备动态特性和静态特性于一身的语言:

    C语言(静态语言特性),函数的调用在编译时,会决定调用哪个函数;
    Objective-C(静态语言特性):在编译时,并不能决定真正调用哪个函数,但是会检查调用函数;

    在编译阶段,C语言调用未实现的函数,会报错;
    在编译阶段,Objective-C是可以调用任何函数的,即使这个函数并未实现,只要声明过就不会报错;

    Objective-C 语言,具有动态调用的过程,仅当真正运行时,才能会根据函数名找到对应的函数来调用。此时,函数如果仍然没有实现,就会报错。

    C语言执行过程:
    源程序 - 预处理 - 编译器 - 汇编器 - 链接器 - 可执行目标程序(二进制)

    执行效率:静态语言比动态语言高;
    因为一部分CPU计算损耗在Runtime过程中,而静态语言生成的机器指令更简洁;真是因为这个原因,所以开发语言的人付出了很大一部分努力保持Runtime小巧。

    Objective-C 语言是C语言的超集 + 一个小巧的Runtime环境

    Swift 是什么类型的语言?

    Swift是静态语言,而且是类型安全的静态语言,即使是Int和Double也需要显示转换。不需要数据类型的声明(Swift通过var和let声明变量和常量,不需要指定数据类型)其实就是语法糖了,是编译器做的类型推断,一旦类型确定就无法改变了。

  • 相关阅读:
    Docker和K8S
    CoBot 库博源代码缺陷检测工具
    Hobot软件成分分析平台
    Black duck(黑鸭子软件)开源代码审计管理测试平台
    python之理解super及MRO列表
    Python中MRO排序原理
    python中with的用法
    使用微服务架构重构支付网关
    支付网关的设计原则
    python内存管理--垃圾回收
  • 原文地址:https://www.cnblogs.com/samniu/p/9857077.html
Copyright © 2020-2023  润新知