Swift和OC,是编译型语言、解释性语言、运行时语言

首先需要明确的一点是,什么是编译型语言和解释性语言

编译型语言,就是在其执行过程中需要先将其经过编译成机器码来给计算机识别的,其执行效率就会比较高这个是显而易见的,常见比如:C、C++

而解释型语言,是不用编译这个过程的,只是在执行时通过相应的翻译器(虚拟机)逐行翻译。这样它的跨平台性就会较好,因为可以直接通过编译器编译成需要的平台上的语言,但是有一个问题就是:它每次运行都要讲每行代码逐行解释翻译一遍。常见比如:Python、JS、PHP

由此可见,我们的OC和Swift都是需要先进行编译后才能执行代码功能的,因此他们都是编译型语言。

接着谈的就是OC和swift的其中一个不同,那就是Swift它是一个动态类型语言,意思是他是在代码执行时才去做数据类型的检查,使用了swift的童鞋应该都清除,swift中变量的类型声明都是使用Var关键字的并不指定具体数据结构类型,这又衍生出一个类型,那就是弱类型语言,这个很好理解,类型比较弱嘛就是没有强制规定。相对应的OC中变量的在声明时候都要指定其类型,因此它就是相对动态类型语言反面的静态类型语言,也是强类型语言

最后还要说明的就是运行时语言,由上文提到:编译型语言是要经过 编译--》运行,运行时语言就是在程序运行的时候才去调用该对象的方法,和决定其数据类型。而不是在编译的时候进行

参考网站 http://www.th7.cn/Program/IOS/

OC是运行时语言,只有在程序运行时,才会去确定对象的类型,并调用类与对象相应的方法。利用runtime机制让我们可以在程序运行时动态修改类、对象中的所有属性、方法,就算是私有方法以及私有属性都是可以动态修改的。

时间: 2024-11-07 23:07:17

Swift和OC,是编译型语言、解释性语言、运行时语言的相关文章

关于使用动态语言运行时 (. net)

AutoCAD Managed .NET API允许您使用使用. NET 4.0 引入的动态语言运行时 (DLR). 使用DLR可以直接访问对象, 而无需: 打开一个对象进行读取或写入, 然后在完成后关闭该对象. 利用事务提交所做的更改. 在使用DLR时获得对象的ObjectId后, 可以直接访问对象的属性和方法.获得ObjectId后, 可以将ObjectId分配给数据类型的变量: Object in VB.NET dynamic in C# 获取ObjectId因对象保存到数据库的方式而异.

OC是动态运行时语言是什么意思?什么是动态识别,动态绑定?

动态: 主要是将数据类型的确定由编译时,推迟到了运行时. 这个问题其实浅涉及到两个概念,运行时和多态. 简单来说,运行时机制使我们直到运行时才去决定一个对象的类别,以及调用该类别对象指定方法. 现在,让我来想想OC的动态语言特性.OC的动态特性表现为了三个方面:动态类型.动态绑定.动态加载.之所以叫做动态,是因为必须到运行时(run time)才会做一些事情. (1)动态类型 动态类型,说简单点就是id类型.动态类型是跟静态类型相对的.像内置的明确的基本类型都属于静态类型(int.NSStrin

编程语言和语言运行时的思考

1. 什么是一门编程语言 一门编程语言应该具备一下基本要素: 1. 类型系统(可以定义变量) 2. 复合类型(例如:结构体,枚举,类,接口) 3. 循环结构 4. 判断结构 5. 函数,及其调用规范 6. 编译器,可以将这种语言编译的源代码,编译成,特定平台上可以执行的代码 这是就构成一们编程语言 2. Runtime (运行时) 运行时包含了程序运行的基本环境,这里有动态内存---堆,有线程栈,有最基本的运行时函数库,例如文件读写API, 字符串操作,等等. CLR叫做公共语言运行时(Comm

《精通C#》第十六章-动态类型和动态语言运行时-第一节至第四节

在.Net4.0中引入了一个关键字dynamic,这是一个动态类型关键字.Net中还有一个关键字是var,这是一个隐式类型,可以定义本地变量,此时var所代表的实际的数据类型有编译器在初次分配时决定,比如:var a=1:a="aa":此时编译器就会报错,因为var在初次定义是已经被分配为int类型,它无法用于返回值.参数或者类/结构.这个时候就要想到所有类型的父类object,按照继承关系来说,object是所有类型的父类,所以它可以替代所有的类,也就是说:object a=1:a=

Swift - 让StoryBoard设计视图,程序运行时都使用横屏形式

1,运行时横屏 将项目属性“General”->“DeviceOritentation”的Portrait复选框去掉 2,storyboard设计视图横屏 在storyboard中,单击中间界面视图的头部,在右侧属性面板中. 把Size设置为iPhone4-inch(4寸屏,也可以选择其他屏幕尺寸) 把Orientation设置成Landscape

swift 与 OC中的需要注意知识点

swift oc    *swift有命名空间概念,所谓命名空间即同一个命名空间中相互可以调用不用导入.不同命名空间中可以起相同的名字 swift项目就是一个命名空间 *判断是否是某个类 .协议.方法 *运行时获取类属性列表.属性名称.将C语言字符串转成oc string *基本数据类型,在OC中没有可选,swift中如果定义成可选,运行时同样获取不到,使用KVC会崩溃,所以基本数据类型需要赋初值 *private 的属性,使用运行时,同样获取不到属性,同样会让KVC崩溃 *运行时即运行时执行的

iOS开发项目篇—25字典转模型第三方框架、运行时机制简介

iOS开发项目篇—25字典转模型第三方框架.运行时机制简介 一.使用第三方框架完成字典转模型 1.获取框架 在www.code4app.com网站中,搜索字典转模型 可以点击下载代码进行下载,也可以带github上去下载. 管理框架的好处:点击刷新按钮会刷新所有的项目. 2.使用 1.导入第三方框架 2.使用示例 错误提示: 在刷新的时候直接使用一行代码即可: 1 /**加载最新微博数据*/ 2 -(void)loadNewStatus 3 { 4 //1.获得请求管理者 5 AFHTTPReq

对运行时概念的理解

OC 是动态运行时语言是指? oc是一个全动态语言,oc的一切都是基于runtime实现的! 1. 传统的面向过程的语言开发,编译器其中最最基础和原始的目标之一就是把一份代码里的函数名称,转化成一个相对内存地址,把调用这个函数的语句转换成一个jmp跳转指令.在程序开始运行时候,调用语句可以正确跳转到对应的函数地址.直白,但是...太死板了 2. 我们希望灵活,于是需要开发面向对象的语言,c++在c的基础上增加了类的部分,就是让编译器多绕个弯,在严格的c编译器上增加一层类处理的机制,把一个函数限制

iOS-浅谈runtime运行时机制02-runtime简单使用

http://blog.csdn.net/jiajiayouba/article/details/44201079 由于OC是运行时语言,只有在程序运行时,才会去确定对象的类型,并调用类与对象相应的方法.利用runtime机制让我们可以在程序运行时动态修改类.对象中的所有属性.方法. 下面就介绍运行时一种很简单的使用方式,将字典对象转为模型.当然,你可能会问,我用KVO直接调用 setValuesForKeysWithDictionary:方法,传入一个字典一样可以快速将字典转模型啊,但是这种方