Как преобразовать логическое значение в Rust в целое число? - PullRequest
2 голосов
/ 01 апреля 2019

Как мне преобразовать логическое значение в целое число в Rust?Например, true становится 1, а false становится 0.

Ответы [ 4 ]

10 голосов
/ 01 апреля 2019

В ролях:

fn main() {
    println!("{}", true as i32)
}
9 голосов
/ 01 апреля 2019

Логическое значение в Rust равно , гарантированно равное 1 или 0:

bool представляет значение, которое может быть только истинным или ложным. Если вы преобразуете bool в целое число, true будет равно 1, а false будет 0.

Логическое значение, которое не 0 и 1 не неопределенное поведение :

Значение, отличное от false (0) или true (1) в bool.

Следовательно, вы можете просто привести его к примитиву:

assert_eq!(0, false as i32);
assert_eq!(1, true as i32);
6 голосов
/ 01 апреля 2019

Используйте оператор if:

if some_boolean { 1 } else { 0 }

Смотри также:

2 голосов
/ 01 апреля 2019

Вы можете использовать .into():

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

let z: isize = false.into();
println!("{}", z); // 0

площадка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...