据我所知,C#,VB,Java和JavaScript中的布尔变量的默认值是false
(或者"表现得像假"更准确在JavaScript的情况下)我确信还有许多其他语言就是这种情况。
我想知道为什么会这样?语言设计师为什么选择false
作为默认值?对于数值,我可以看到零是一个合理的选择,但我不会发现false
不再是true
的自然状态。
顺便说一句,是否存在默认值为true的语言?
答案 0 :(得分:2)
从语义的角度来看,布尔值表示条件或状态。许多语言假设,如果没有初始化,则不满足条件(或者这种状态是空的,或者其他什么)。它就像一面旗帜。从另一个角度考虑一下。如果布尔值的默认值为true,那么该语言的语义将告诉您最初满足任何条件,这是不合逻辑的。
从实际的角度来看,编程语言通常在内部将布尔值存储为一个位(0表示false,1表示true),因此在这种情况下,数字类型的相同规则适用于布尔值。
Java的布尔实例变量的默认值始终为false,但这不适用于局部变量,您需要初始化它。