强类型与静态类型以及弱类型与动态类型之间的区别

Posted

技术标签:

【中文标题】强类型与静态类型以及弱类型与动态类型之间的区别【英文标题】:Difference between Strong vs Static Typing AND Weak vs Dynamic Typing 【发布时间】:2012-08-07 01:02:58 【问题描述】:

据我了解,动态类型与弱类型相同,强类型与静态类型相同,但我不确定我是否正确。

【问题讨论】:

Static/Dynamic vs Strong/Weak 的可能重复项 这能回答你的问题吗? Static/Dynamic vs Strong/Weak 【参考方案1】:

Static typing vs dynamic typing:

静态类型是在编译时进行类型检查。您必须在代码中为变量定义类型,并且编译器会检查您对数据执行的任何操作。

动态类型是在运行时进行类型检查。如果您尝试对不兼容的类型执行操作,而不是在编译代码时出现错误,您将得到运行时错误。但是,您将受益于拥有更多功能的函数,因为它们可以为多种数据类型编写一次。

Strong typing vs weak typing:

当您使用强类型时,您只能通过直接操作该数据类型的对象来对数据进行操作。

弱类型允许您在不考虑其类型的情况下对数据进行操作。一些语言通过指针来做到这一点。其他语言会在执行操作之前将您的一种类型转换为另一种类型。

我包含的链接有更详细(可能更清晰)的解释。

【讨论】:

以上是关于强类型与静态类型以及弱类型与动态类型之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

静态语言与动态语言,强类型语言与弱类型语言

静态语言 与 动态语言 的区别

弱类型强类型动态类型静态类型语言的区别

弱类型强类型动态类型静态类型语言的区别是什么?

解释型语言和编译型语言弱类型语言和强类型语言动态语言和静态语言的区别

进阶学习11:JavaScript语言的不足——类型系统问题强弱类型静态动态类型