布尔型
boolean.md
commit: 1804726424c5cbc97f3d9d4adf6236980e2ff7a1
本章译文最后维护日期:2021-2-10
#![allow(unused)] fn main() { let b: bool = true; }
布尔型或布尔数是一种可以为*真(true
)或假(false
)*的原语数据类型。
这种类型的值可以使用字面量表达式创建,使用关键字 true
和 false
来表达对应名称的值。
该类型是此语言的预导入包的一部分,使用名称 bool
来表示。
布尔型的对象尺寸和对齐量均为1。false 的位模式为 0x00
, true 的位模式为 0x01
。其他的任何其他位模式的布尔型的象都是未定义的行为。
布尔型是多种表达式的操作数的类型:
注意:布尔型的行为类似于枚举类型,但它确实不是枚举类型。在实践中,这主要意味着构造函数不与类型相关联(例如没有
bool::true
这种写法)。
和其他所有的原语类型一样,布尔型实现了 Clone
、Copy
、Sized
、Send
和 Sync
这些 traits。
注意: 参见标准库文档中的相关操作运算。
布尔运算
当使用带有布尔型的操作数的特定操作符表达式时,它们使用[布尔逻辑规则][boolean logic]进行计算。逻辑非
b | !b |
---|---|
true | false |
false | true |
逻辑或
a | b | a | b |
---|---|---|
true | true | true |
true | false | true |
false | true | true |
false | false | false |
逻辑与
a | b | a & b |
---|---|---|
true | true | true |
true | false | false |
false | true | false |
false | false | false |
逻辑异或
a | b | a ^ b |
---|---|---|
true | true | false |
true | false | true |
false | true | true |
false | false | false |
比较
a | b | a == b |
---|---|---|
true | true | true |
true | false | false |
false | true | false |
false | false | true |
a | b | a > b |
---|---|---|
true | true | false |
true | false | true |
false | true | false |
false | false | false |
a != b
等同于!(a == b)
a >= b
等同于a == b | a > b
a < b
等同于!(a >= b)
a <= b
等同于a == b | a < b