弱类型和强类型的简单理解
强/弱类型是指类型检查的严格程度的。无论哪种类型的语言,对于变量而言,都存在“类型”和“值”两个概念。对于强类型语言,要求所有的变量必须先定义后使用,并且指定类型的变量只能接受类型与之匹配的值。
如Java的变量定义和使用语句为:
int a = 10;
System.out.println(a);
这意味着每个变量和每个表达式都有一个在编译时就确定的类型,类型限制了变量能赋的值,限制了表达式能产生的值同时也限制了在这些值上可以进行的操作。强类型语言要求编译时进行更为严格的语法检查,减少了编程错误的发生。
弱类型的变量类型则是无需声明的,由解释器解释。但是,这并不意味着,弱类型的变量就没有类型这一概念了。
举一个PHP的例子
<?php
$a = 10;
echo gettype($a);
$b = @a."hello";
echo gettype($b);
?>
结果返回为integer和string。
总结:
- 强类型的变量类型是一经声明不能改变的,在编译时就进行检查
- 弱类型变量是根据使用的情况随时改变的,由解释器解释