动态、静态类型
动态与静态:在编译的时候就能清楚地知道一个变量的类型。
如果一个语言的变量的类型能在运行时动态地改变,那么它是动态语言。否则是静态语言。
强、弱类型
强、弱类型:是否允许隐式的类型转换。
如果一个语言的表达式在求值时不允许操作数类型的自动转换,那么它是强类型。否则是弱类型。
举例
Javascript 是动态、弱类型语言
弱类型举例:自动将数值转换成字符串
> 1+"2"
< "12"
动态类型举例:变量可以在运行时改变类型
1 2 3 4 5 6 |
|
Go 是静态、强类型语言
强类型举例:字符串不会转换成数值再相加
1 2 3 |
|
静态类型举例:变量类型在定义时就确定下来
1 2 3 |
|
一些常见语言的类型划分图
图片来源:弱类型、强类型、动态类型、静态类型语言的区别是什么? - 吴亦凡的回答 - 知乎