Programming languages i';我对语言分类感到困惑,有人能解释一下吗?

Programming languages i';我对语言分类感到困惑,有人能解释一下吗?,programming-languages,Programming Languages,以下哪项陈述是错误的 (A) 在静态类型语言中,程序中的每个变量都有固定的类型 (B) 在非类型化语言中,值没有任何类型 (C) 在动态类型语言中,变量没有类型 (D) 在所有静态类型语言中,程序中的每个变量在程序执行期间仅与单一类型的值关联 你能解释一下这个理论吗?C)(在动态类型语言中,变量没有类型)是假的 变量有一个类型,但是它只是在运行时之前才被声明或决定。这意味着在运行程序之前没有类型检查 描述类型及其含义的有用链接: 如果您曾经对PHP做过很多工作,您会注意到,当您声明varial

以下哪项陈述是错误的

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

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

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

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

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

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


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

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

如果您曾经对PHP做过很多工作,您会注意到,当您声明varialbe时,您不必说它是INT还是字符串。但是,有时您知道您将接收一个字符串,但需要一个int,因此您仍然可以在运行时键入cast变量,即使在声明变量时没有显式声明该变量将包含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始终有一个类型,无论该类型是否更改都无关紧要。

“变量有一个类型,但它只是在运行时才被声明或决定。”您同意在动态类型语言中,变量一次可以存储类型为
Int
的值吗,另一时间,类型为
Bool
的值?如果是这样的话,那么变量的类型是什么?我个人只想说明它是一种动态语言,变量在整个运行时都会发生变化。这么说来,你可以说,在程序的x点上,变量是Int,但在程序的y点上,变量是boolean。我个人尽量不改变它的“原始”类型,以避免混淆程序中某个点的变量。好的,但是你的陈述“变量有一个类型,但是它只是在运行时才声明或决定”在我看来是不正确的。无法为变量指定(一)种类型。我的编辑是否有帮助?它始终具有指定给它的类型(一)。但类型可以改变。当它改变时,它不再是旧的类型,而是一种新的类型,因此它仍然只是一种类型。老实说,我不认为这是“有一种类型”概念的正确方法。通过使用相同的逻辑,您可以说变量是常量,因为在执行期间的任何时候,它都持有一个特定的值。对于任何值的“has a type”,我们应该能够提前知道它,以便(例如,由编译器)检查变量的使用是否符合其类型。
myPythonVariable = "I am currently a string" #the variable is of type string
myPythonVariable = 5                         #the variable is now of type integer