当我们说一种语言是动态类型和静态类型时,这意味着什么?
当前回答
静态类型语言(如c++、Java)和动态类型语言(如Python)的区别仅仅在于变量类型的执行。 静态类型语言对变量有静态数据类型,这里在编译期间检查数据类型,因此调试要简单得多……而动态类型语言则不这样做,它会检查执行程序的数据类型,因此调试有点困难。
此外,它们有一个非常小的区别,可以与强类型和弱类型语言相关联。强类型语言不允许将一种类型用作另一种类型。C和c++…而弱类型语言允许例如python
其他回答
在静态类型语言中,变量与编译时已知的类型相关联,并且该类型在整个程序执行过程中保持不变。同样,变量只能被赋值为已知/指定类型的实例。 在动态类型语言中,变量没有类型,它在执行期间的值可以是任何形状和形式的任何东西。
动态类型语言有助于快速构建算法概念原型,而不需要考虑需要使用什么变量类型(这在静态类型语言中是必要的)。
静态类型语言(编译器解析方法调用和编译引用):
通常表现更好 更快的编译错误反馈 更好的IDE支持 不适合使用未定义的数据格式 当没有定义模型时,很难开始开发 更长的编译时间 在很多情况下需要编写更多的代码
动态类型语言(在运行程序中做出的决定):
较低的性能 更快的发展 有些bug可能只在稍后的运行时才会被检测到 适用于未定义的数据格式(元编程)
静态类型
在运行前检查类型,以便更早地捕获错误。
Examples = c++
动态类型
在执行期间检查类型。
示例= Python
允许程序在运行时更改变量类型的动态类型编程。
动态类型语言:Perl、Ruby、Python、PHP、JavaScript、Erlang
静态类型,意味着如果你试图在一个整数变量中存储一个字符串,它将不会接受它。
静态类型语言:C、c++、Java、Rust、Go、Scala、Dart