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