1.3 类型系统的类型

如今,大多数语言和运行时都提供某种形式的类型化。我们很早之前就意识到,将代码解释为数据,或者将数据解释为代码,可能导致灾难性结果。现代类型系统之间的主要区别在于检查类型的时机以及检查的严格程度。

静态类型在编译时检查类型,所以当完成编译后,运行时的值一定有正确的类型。另一方面,动态类型则将类型检查推迟到运行时,所以类型不匹配就成了运行时错误。

强类型系统只会做很少的(甚至不做)隐式类型转换,而弱类型系统则允许更多隐式类型转换。