5

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

我想知道这是为什么?为什么语言设计者选择false默认值?对于数值,我可以看到零是一个合乎逻辑的选择,但我不认为它falsetrue.

顺便说一句,是否有任何语言默认为真?

4

1 回答 1

2

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

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

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

于 2013-01-04T12:38:49.453 回答