为什么布尔变量的默认值往往是假的?

时间:2013-01-04 12:24:34

标签: programming-languages theory

据我所知,C#,VB,Java和JavaScript中的布尔变量的默认值是false(或者"表现得像假"更准确在JavaScript的情况下)我确信还有许多其他语言就是这种情况。

我想知道为什么会这样?语言设计师为什么选择false作为默认值?对于数值,我可以看到零是一个合理的选择,但我不会发现false不再是true的自然状态。

顺便说一句,是否存在默认值为true的语言?

1 个答案:

答案 0 :(得分:2)

从语义的角度来看,布尔值表示条件或状态。许多语言假设,如果没有初始化,则不满足条件(或者这种状态是空的,或者其他什么)。它就像一面旗帜。从另一个角度考虑一下。如果布尔值的默认值为true,那么该语言的语义将告诉您最初满足任何条件,这是不合逻辑的。

从实际的角度来看,编程语言通常在内部将布尔值存储为一个位(0表示false,1表示true),因此在这种情况下,数字类型的相同规则适用于布尔值。

Java的布尔实例变量的默认值始终为false,但这不适用于局部变量,您需要初始化它。