if

2018-08-12 22:03 更新

if

Rust 提供的 if 語法不是特別復雜,但它比起傳統(tǒng)的系統(tǒng)語言更像動態(tài)類型語言中提供的 if。接下來讓我們談論它,以確保你掌握 Rust 中 if 的微妙之處。

if 是“分支”特定形式的更一般的概念。這個名字來自于樹中的一個分支:在一個決策點有多條路徑可以選擇,當我們依賴于某個條件可以選擇其中一個分支。

if 通常情況是一個選擇會有兩條路徑:

let x = 5;

if x == 5 {
    println!("x is five!");
}

如果我們改變了 x 的值,上面那一行不會打印。更具體地說,如果 if 后面的表達式的求值結果為 true,那么它后面的語句塊會被執(zhí)行。如果是 false,那么該語句塊不會被執(zhí)行。

如果你想要在 if 后面表達式是 false 時發(fā)生什么,你可以使用一個 else 語句:

let x = 5;

if x == 5 {
    println!("x is five!");
} else {
    println!("x is not five :(");
}

如果有一個以上的情況下,可以使用 else if 語句:

let x = 5;

if x == 5 {
    println!("x is five!");
} else if x == 6 {
    println!("x is six!");
} else {
    println!("x is not five or six :(");
}

這都是非常標準的語法結構。然而,你也可以這樣做:

let x = 5;

let y = if x == 5 {
    10
} else {
    15
}; // y: i32

我們可以(而且應該)這樣寫:

let x = 5;

let y = if x == 5 { 10 } else { 15 }; // y: i32

上面的代碼會正常執(zhí)行,因為 if 是個表達式。表達式的值是被選擇的那個分支中最后一個表達式的值。并且如果 if 語句后面沒有 else 語句,通常會將 () 作為語句執(zhí)行的結果。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號