动态语言到底是什么

我们经常说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;

}

区别:静态是运行时不可改变结构了。

持续更新~

你可能感兴趣的:(动态语言到底是什么)