Rust Convert Bool to IntGet an integer like i32 from a bool variable by using a cast expression. Test the resulting integers.
dot net perls
Convert bool, int. Often in Rust programs we have bool variables. These can be returned from a function, or from an expression evaluation.
I32 result. By using a cast, we can directly convert a bool to an i32 value. And for non-standard conversions, a match expression can be used.
Required input, output. There are only 2 valid boolean values in programs—true and false. Logically these are usually converted to 1 and 0.
Required input, output:
false -> 0 true -> 1
Example code. To begin, we have an example program where we first assign some bools. And then we convert them with the simplest approach, which is an "as" cast.
Part 1 We create some example bools and use 3 different bool variables. We use an expression to set a bool.
Part 2 This is the important part, where the actual conversion from bool to int occurs.
Part 3 We test and print our results. We find that each bool is now the value 0 or 1.
Rust program that converts bools to integers
fn main() { // Part 1: create some example bools. let result1 = true; let result2 : bool = false; let temp = 10; let result3 = temp == 10 && result1; // Part 2: convert bools to i32s. let convert1 = result1 as i32; let convert2 = result2 as i32; let convert3 = result3 as i32; // Part 3: test and print results. if convert1 == 1 { println!("TRUE IS 1"); } println!("{} = {}", result1, convert1); println!("{} = {}", result2, convert2); println!("{} = {}", result3, convert3); }
TRUE IS 1 true = 1 false = 0 true = 1
Match example. It is sometimes necessary to use a more complex approach to converting bools. Here we use a logic structure, match, to branch and perform the conversion.
Rust program that uses match, converts bools
fn main() { let result1 = true; // Use match to convert bool with more complex logic. let convert1 = match result1 { true => 10, false => 20 }; println!("{} = {}", result1, convert1); }
true = 10
A summary. Converting bools to i32 values in Rust is easy to do with a cast expression. But more complex or unusual conversions can be done with a match statement as well.
© 2007-2021 sam allen. see site info on the changelog