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

如何在Rust中将布尔值转换为整数?,rust,Rust,如何在Rust中将布尔值转换为整数?如中所示,true变为1,false变为0。将其转换为: fn main() { println!("{}", true as i32) } 使用if语句: if some_boolean { 1 } else { 0 } 另见: Rust中的布尔值为: bool表示一个值,该值只能是true或false。如果将bool转换为整数,true将为1,false将为0 既不是0也不是1的布尔值是: bool中除false(0)或true(1)以外的

如何在Rust中将布尔值转换为整数?如中所示,
true
变为1,
false
变为0。

将其转换为:

fn main() {
    println!("{}", true as i32)
}

使用
if
语句:

if some_boolean { 1 } else { 0 }
另见:


    • Rust中的布尔值为:

      bool
      表示一个值,该值只能是
      true
      false
      。如果将
      bool
      转换为整数,
      true
      将为1,
      false
      将为0

      既不是
      0
      也不是
      1
      的布尔值是:

      bool中除
      false
      0
      )或
      true
      1
      )以外的值

      因此,您可以将其强制转换为基本体:

      assert_eq!(0, false as i32);
      assert_eq!(1, true as i32);
      
      您可以使用
      .into()


      @Stargateur我正在将它们打印到屏幕上进行调试,在我的情况下,打印出1和0比
      true
      false
      更方便。有时在算术中有用,例如
      pub fn calculateprice(num:i32)->i32{return((num>40)as i32*num)+num;}
      A显示这比其他答案快20%。@Stein我认为你的链接已经过时了。这个链接还没有完全过时,但同时我添加了更多的基准测试,不清楚这是关于选项基数测试的。此外,它也不会链接到特定的文件。顺便说一句,他们仍然报告了与今天的夜间锈病相同的表现:这个答案,或者类似的
      匹配
      表达式,速度更快(当在微基准中使用时)。@Stein Current nightly似乎为
      is_some_生成了与
      is_some__if
      相同的代码。@SolomonUcko似乎不太一样。今天,基准仍然报告相同的差异(不管文件中的名称和位置,这可能会影响对齐)。当我将非常有用的锁销链接中的
      -O
      -C opt level=3
      交换
      货台
      进给时,它确实报告了装配差异。
      let a = true;
      let b: i32 = a.into();
      println!("{}", b); // 1
      
      let z: isize = false.into();
      println!("{}", z); // 0