布尔型

boolean.md
commit: 1804726424c5cbc97f3d9d4adf6236980e2ff7a1
本章译文最后维护日期:2021-2-10


#![allow(unused)]
fn main() {
let b: bool = true;
}

布尔型布尔数是一种可以为*真(true)假(false)*的原语数据类型。

这种类型的值可以使用字面量表达式创建,使用关键字 truefalse 来表达对应名称的值。

该类型是此语言的预导入包的一部分,使用名称 bool 来表示。

布尔型的对象尺寸和对齐量均为1。false 的位模式为 0x00, true 的位模式为 0x01。其他的任何其他位模式的布尔型的象都是未定义的行为

布尔型是多种表达式的操作数的类型:

注意:布尔型的行为类似于枚举类型,但它确实不是枚举类型。在实践中,这主要意味着构造函数不与类型相关联(例如没有 bool::true 这种写法)。

和其他所有的原语类型一样,布尔型实现CloneCopySizedSendSync 这些 traits

注意: 参见标准库文档中的相关操作运算。

布尔运算

当使用带有布尔型的操作数的特定操作符表达式时,它们使用[布尔逻辑规则][boolean logic]进行计算。

逻辑非

b!b
truefalse
falsetrue

逻辑或

aba | b
truetruetrue
truefalsetrue
falsetruetrue
falsefalsefalse

逻辑与

aba & b
truetruetrue
truefalsefalse
falsetruefalse
falsefalsefalse

逻辑异或

aba ^ b
truetruefalse
truefalsetrue
falsetruetrue
falsefalsefalse

比较

aba == b
truetruetrue
truefalsefalse
falsetruefalse
falsefalsetrue
aba > b
truetruefalse
truefalsetrue
falsetruefalse
falsefalsefalse
  • a != b 等同于 !(a == b)
  • a >= b 等同于 a == b | a > b
  • a < b 等同于 !(a >= b)
  • a <= b 等同于 a == b | a < b