以下哪个陈述是FALSE?
(A)在静态类型语言中,程序中的每个变量都具有固定类型
(B)在非类型化语言中,值没有任何类型
(C)在动态类型语言中,变量没有类型
(D)在所有静态类型的语言中,程序中的每个变量在执行程序期间仅与单一类型的值相关联答案: (C)
解释:
这是一个模棱两可的问题。 “无类型语言”没有标准的格式定义,因此回答此问题将有些困难。
(A)静态类型语言具有与变量关联的一种类型,一旦推导该变量即被固定。不过,可以在编码人员(例如C, Java)进行代码编辑时指定类型,也可以在编译时进行推断(例如C++ 11,Haskell)。因此,在编译期之后,每个变量都绑定到一个固定类型,从而使该语句为[TRUE]
(B)根据一个定义,非类型语言以位的形式存储值,因此变量或值都没有与之关联的任何类型。因此,该语句变为[TRUE]
(C)动态类型化的语言推导值的类型,并将它们绑定到存储这些值的变量。因此,值肯定具有固定类型,但是变量没有固定值绑定到它们。尽管可以说根据值将类型绑定到变量可以使它们具有类型,但是它们没有一个固定的类型。这句话含糊不清。 [真假]
(D)与(A )相同的原因[TRUE]
因此,正确答案应该是(C)
此解决方案由Vineet Purswani提供。
这个问题的测验