我们经常说OC 是一门动态语言,但让我很明确的解释什么是动态语言还是一脸懵的状态。为此特地查看资料看看大佬们都是怎么理解的。
一 动态语言与静态类型语言
当我想具体了解啥是动态语言时,第一想要了解就是它和静态语言的区别在哪了以及它们的优缺点。
①概念(定义)比较
动态语言:(Dynamic programming Language -动态语言或动态编程语言),动态语言是指程序在运行时可以改变其结构,新的函数可以被引进,已有的函数可以被删除等在结构上的变化。
静态类型语言:(Statically Typed Language-静态类型语言)静态类型语言与动态类型语言刚好相反,它的数据类型是在编译其间检查的,也就是说在写程序时要声明所有变量的数据类型,C/C++是静态类型语言的典型代表,其他的静态类型语言还有C#、JAVA等。对于动态语言与静态语言的区分,套用一句流行的话就是:Static typing when possible, dynamic typing when needed。
看完定义后还有些不明朗没关系 让我们举个实际的例子(下文动态=动态语言 静态= ):
动态---
unction Person(name){
this.name=name;
}
Person.prototype.getName=function(){
return this.name;
}
var person=new Person("okok");
alert(person.getName());
person.getName=function(){return "nono"};
alert(person.getName());
静态-----
public int add(int a,int b){
return a+b;
}
区别:静态是运行时不可改变结构了。
持续更新~
网友评论