如何在Rust中将布尔值转换为整数?与之类似,true
变为1,而false
变为0。
答案 0 :(得分:10)
投射:
fn main() {
println!("{}", true as i32)
}
答案 1 :(得分:9)
Rust中的布尔值是guaranteed to be 1
or 0
:
布尔值表示一个值,该值只能为true或false。如果将布尔值转换为整数,则true为1,false为0。
布尔值,都不是 0
也不 1
是undefined behavior:
布尔值中的false(0)或true(1)以外的值。
因此,您可以将其转换为原始类型:
assert_eq!(0, false as i32);
assert_eq!(1, true as i32);
答案 2 :(得分:6)
答案 3 :(得分:2)
您可以使用.into()
:
let a = true;
let b: i32 = a.into();
println!("{}", b); // 1
let z: isize = false.into();
println!("{}", z); // 0