Boolean type

布尔型

boolean.md
commit: d3a66eb69892b25794b2d82a1249ec01d8ead9f1
本章译文最后维护日期:2023-11-05

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

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

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

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

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

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

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

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

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

Operations on boolean values

布尔运算

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

Logical not

逻辑非

b!b
truefalse
falsetrue

Logical or

逻辑或

aba | b
truetruetrue
truefalsetrue
falsetruetrue
falsefalsefalse

Logical and

逻辑与

aba & b
truetruetrue
truefalsefalse
falsetruefalse
falsefalsefalse

Logical xor

逻辑异或

aba ^ b
truetruefalse
truefalsetrue
falsetruetrue
falsefalsefalse

Comparisons

比较

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

Bit validity

位有效性

Rust会保证 bool类型的单个字节被初始化(换句话说,transmute::<bool, u8>(...) 总是健全(sound)的——但由于一些位模式是无效的 bool,因此相反的操作并不总是健全的)。