强类型语言和静态类型语言有什么区别?
另外,一方是否意味着另一方? #1楼 强类型意味着类型之间的转换之间存在限制。 静态类型意味着类型不是动态的 - 一旦创建变量,就无法更改变量的类型。 #2楼 这经常被误解,所以让我澄清一下。 静态/动态打字 静态类型 是类型绑定到 变量的位置 。 在编译时检查类型。 动态类型 是类型绑定到 值的位置 。 在运行时检查类型。 所以在Java中例如: String s = "abcd"; s 将“永远”成为一个 String 。 在它的生命中它可能指向不同的 String (因为 s 是Java中的引用)。 它可能具有 null 值,但它永远不会引用 Integer 或 List 。 那是静态打字。 在PHP中: $s = "abcd"; // $s is a string $s = 123; // $s is now an integer $s = array(1, 2, 3); // $s is now an array $s = new DOMDocument; // $s is an instance of the DOMDocument class 这是动态打字。 强/弱打字 (编辑提醒!) 强类型 是一个没有广泛认同意义的短语。 大多数程序员使用这个术语来表示静态类型以外的东西,使用它来暗示存在由编译器强制执行的类型规则。 例如,CLU有一个强类型系统