在计算机科学中,布尔(bool)数据类型只有两个可能的值。 '对或错'。而且,在计算机科学中,1 为 true,0 为 false。那么为什么布尔值存在呢?为什么我们不使用只能返回两个可能值的整数,例如 1 或 0。
例如:
bool mindExplosion = true; // True!
int mindExplosion = 1; // True!!
// Or we can '#define true 1' and it's the same right?
我错过了什么?
当我们可以使用int时,为什么还要存在bool?
嗯,您不需要像
int
那么大的东西来表示两种状态,因此允许使用较小的类型来节省空间是有意义的
为什么我们不使用只能返回两个可能值的整数,例如 1 或 0。
这正是
bool
。 它是一个无符号整数类型,表示 true (1) 或 false (0)。
为此使用特定类型的另一个好处是它无需任何文档即可表达意图。如果我们有一个像(警告,非常做作的例子)这样的函数
void output(T const & val, bool log)
很容易看出 log 是一个选项,如果我们传递 false 它就不会记录。如果是的话
void output(T const & val, int log)
然后我们不确定它的作用。是否要求日志级别?是否登录的标志?还有别的吗?
我错过了什么?
表现力。
当声明变量时
int
,它可能仅用于 0 和 1,或者它可能包含 INT_MIN..INT_MAX
中的任何内容。当变量被声明时
bool
,它就被
明确地表示它要保存真/假值。 除此之外,这允许编译器在您真正需要
int
的地方使用
bool
时抛出警告,或者尝试将 2
存储在 bool
中。编译器是你的朋友;给它所有可能的提示,这样它就可以告诉你你的代码何时开始看起来很时髦。