How do I convert a boolean to an integer in Rust?

前端 未结 4 1756
一个人的身影
一个人的身影 2021-01-17 10:03

How do I convert a boolean to an integer in Rust? As in, true becomes 1, and false becomes 0.

4条回答
  •  庸人自扰
    2021-01-17 10:33

    A boolean value in Rust is guaranteed to be 1 or 0:

    The bool represents a value, which could only be either true or false. If you cast a bool into an integer, true will be 1 and false will be 0.

    A boolean value, which is neither 0 nor 1 is undefined behavior:

    A value other than false (0) or true (1) in a bool.

    Therefore, you can just cast it to a primitive:

    assert_eq!(0, false as i32);
    assert_eq!(1, true as i32);
    

提交回复
热议问题