如何在Rust中将布尔值转换为整数?

New*_*yte 3 rust

如何在Rust中将布尔值转换为整数?与in一样,true变为1,然后false变为0。

For*_*Bru 11

投放:

fn main() {
    println!("{}", true as i32)
}
Run Code Online (Sandbox Code Playgroud)


She*_*ter 10

使用一条if语句:

if some_boolean { 1 } else { 0 }
Run Code Online (Sandbox Code Playgroud)

也可以看看:

  • [简单基准测试](https://github.com/ssomers/rust_bench_quickies/tree/master/src) 显示这比其他答案快 20%。 (5认同)

Tim*_*ann 10

Rust中的布尔值保证为10

bool代表值,这只能是任一truefalse。如果将a bool转换为整数,true则将为1并且false将为0。

布尔值,它既不是 0 也不 1未定义的行为

布尔值中false0)或true1)以外的值。

因此,您可以将其转换为原始类型:

assert_eq!(0, false as i32);
assert_eq!(1, true as i32);
Run Code Online (Sandbox Code Playgroud)


was*_*mup 8

You may use .into():

let a = true;
let b: i32 = a.into();
println!("{}", b); // 1

let z: isize = false.into();
println!("{}", z); // 0
Run Code Online (Sandbox Code Playgroud)

操场