首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

弱类型与动态类型的关系,小弟我的这种结论正确吗

2012-02-22 
弱类型与动态类型的关系,我的这种结论正确吗?弱类型与动态类型的关系,我的这种结论正确吗?弱类型语言,一定

弱类型与动态类型的关系,我的这种结论正确吗?
弱类型与动态类型的关系,我的这种结论正确吗?
弱类型语言,一定是动态的语言,但是动态的语言,不一定全是弱类型的,这种说法对吗?
这是我自已得出的结论,不知对不对。

如果一个语言是弱类型,比如 php,它一定是动态语言。
但是一个语言是动态的话,并不一定是弱类型的,有可能是强类型的。
比如 python,本身是强类型语言,但是却是动态的。

我认为这个推论没问题,大家说说,最好能驳倒我的结论。


[解决办法]
点击查看:什么是动态语言和静态语言?
[解决办法]
对于概念性的东西一向不善于分辨记忆,如果你要问我什么是静态语言什么是动态语言,我一定回答不正确或不完整,我可能会以为动态语言就是需要编译然后运行的语言(像C#等面向对象的语言),而静态语言就是不需要编译就直接运行的语言(像javascript等脚本语言)。。。。但似乎听说过“动态脚本语言”。。。。?到底什么是静态语言什么是动态语言还真的不知道。

下面就来好好学习下吧

静态语言:静态类型语言的类型判断是在运行前判断(如编译阶段),比如C#就是一个静态类型语言。 

动态语言:是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化。比如众所周知的ECMAScript(JavaScript)便是一个动态语言。除此之外如Ruby、Python等也都属于动态语言。 

静态语言与动态语言的优缺点:静态类型语言的主要优点在于其结构非常规范,便于调试,方便类型安全;缺点是为此需要写更多的类型相关代码,导致不便于阅读、不清晰明了。动态类型语言的优点在于方便阅读,不需要写非常多的类型相关的代码;缺点自然就是不方便调试,命名不规范时会造成读不懂,不利于理解等。静态类型语言为了达到多态会采取一些类型鉴别手段,如继承、接口,而动态类型语言却不需要,所以一般动态语言都会采用dynamic typing,常出现于脚本语言中。 

强类型定义语言和弱类型定义语言 

(1)强类型定义语言:强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。举个例子:如果你定义了一个整型变量a,那么程序根本不可能将a当作字符串类型处理。强类型定义语言是类型安全的语言。

(2)弱类型定义语言:数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。

强类型定义语言在速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误。另外,“这门语言是不是动态语言”与“这门语言是否类型安全”之间是完全没有联系的!
例如:Python是动态语言,是强类型定义语言(类型安全的语言); VBScript是动态语言,是弱类型定义语言(类型不安全的语言); JAVA是静态语言,是强类型定义语言(类型安全的语言)。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hot13681170041/archive/2009/12/22/5047696.aspx

热点排行