贺兰星辰 (@HikariLan) 在 论编程界的日经问题:到底如何区分静态类型和动态类型、强类型和弱类型? 中发帖
又一篇老文新发,原文来自于我的博客。
我发现在我加的一些编程交流群里,几乎每半个月就会产生这样的一些争论:“Python 到底是强类型语言还是弱类型语言”,“为什么 JavaScript 是弱类型语言”,“动态类型语言和静态类型语言的区别是什么”… 这些争吵喋喋不休,大多很难有一个确定的共识。
其实大家很难争吵出共识是很正常的,因为对于静态类型和动态类型,强类型和弱类型这些概念来说,他们本身就没有什么确定的概念,大家基于一个模糊的概念各说各的,自然得不出一个确切的答案。
但是如果我们按照一些已有的共识来重新规范一下两对类型的概念,那么其实还是很容易得出答案的。
值得一提的是,无论是静态类型和动态类型,还是强类型和弱类型,这些概念都是基于语言的语法这一层次来定义的,而不是语言的内部设计,否则我们大可以说:“所有语言最后都是由 0 和 1 组成的”,那么就没有办法再谈什么“类型”了。
...