我对语言类别感到困惑,有人可以解释一下吗?

时间:2014-02-13 11:44:04

标签: programming-languages

以下哪项陈述是错误的?

(A)在静态类型语言中,程序中的每个变量都有固定类型

(B)在非类型语言中,值没有任何类型

(C)在动态类型语言中,变量没有类型

(D)在所有静态类型语言中,程序中的每个变量在程序执行期间只与单个类型的值相关联

你能解释一下这个理论吗?

1 个答案:

答案 0 :(得分:1)

C)(在动态类型语言中,变量没有类型)是假的。

变量有一个类型,但是直到运行时才会声明或决定它。这意味着在运行程序之前没有类型检查。

描述类型及其含义的有用链接:

http://en.wikipedia.org/wiki/Type_system

如果您曾经使用过PHP,您会注意到当您声明变量时,您不必说它是INT还是STRING。但是,有时您知道您将接收一个字符串,但需要一个int,因此您仍然可以在运行时键入强制转换变量,即使您声明该变量时未明确声明变量将保留一个int。

<?php
#some more code here.....
# over here $myValue could be of some different type, but it can dynamically change to another type
$myValue = '5'; #storing a string...so $myValue is currently of type String
$myNewValue = (int)$myValue + 5 #type casted to integer, so in this case $myValue is currently of type integer
?>

如果这没有用,可以看看这个。

myPythonVariable = "I am currently a string" #the variable is of type string
myPythonVariable = 5                         #the variable is now of type integer

在上面的代码示例中,myPythonVariable总是有一个类型,无论该类型更改是否无关紧要。