布爾類型

Rust中的Boolean類型有兩個值:true和false。

類似於if、while等的控制語句以及邏輯運算符|| && !都需要進行條件判斷,Rust只允許在條件判斷處使用布爾類型。

例如,要判斷x是否等於0,在其他語言中可能允許如下寫法:


#![allow(unused)]
fn main() {
if x {
  ...
}
}

但在Rust中,不允許上面的寫法(除非x的值自身就是true或false)。

Rust中必須得在條件判斷處寫返回值為true/false的表達式。例如寫成如下形式:


#![allow(unused)]
fn main() {
if x == 0 {
  ...
}
}

Rust的布爾值可以使用as操作符轉換為各種數值類型,false對應0,true對應1。但數值類型不允許轉換為bool值。再次提醒,as操作符常用於原始數據類型之間的類型轉換。

fn main() {
  println!("{}", true as u32);
  println!("{}", false as u8);
  // println!("{}", 1_u8 as bool);  // 編譯錯誤
}