据我所知,在C#中的布尔变量的默认值,VB,Java和JavaScript是false
(或者是“行为像假”更准确的在JavaScript的情况下),我敢肯定有很多其他语言中是这样。
我想知道这是为什么? 为什么语言设计者挑选false
默认? 对于数值,我可以看到,零是一个合乎逻辑的选择,但我不明白的是false
的任何超过自然状态true
。
而作为一个在旁边,还有其默认值为true任何语言?
据我所知,在C#中的布尔变量的默认值,VB,Java和JavaScript是false
(或者是“行为像假”更准确的在JavaScript的情况下),我敢肯定有很多其他语言中是这样。
我想知道这是为什么? 为什么语言设计者挑选false
默认? 对于数值,我可以看到,零是一个合乎逻辑的选择,但我不明白的是false
的任何超过自然状态true
。
而作为一个在旁边,还有其默认值为true任何语言?
从视点语义,布尔值表示的条件或状态。 许多语言假设,如果没有初始化,该条件没有被满足(或状态是空的,或其他)。 它提供类似的标志。 想想看,在周围的其他方法。 如果一个布尔的默认值是true,则该语言的语义会告诉你,任何条件是满足最初,这是不合逻辑的。
从实际操作来看,编程语言往往在内部存储布尔值作为一个位(0为假,1为真),所以对数字类型的规则同样适用于布尔在这种情况下。
布尔实例变量Java的默认值始终是假的,但是,这并不适用于局部变量,你必须初始化。