if

2018-08-12 22:03 更新

if

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

if 是“分支”特定形式的更一般的概念。這個(gè)名字來(lái)自于樹(shù)中的一個(gè)分支:在一個(gè)決策點(diǎn)有多條路徑可以選擇,當(dāng)我們依賴于某個(gè)條件可以選擇其中一個(gè)分支。

if 通常情況是一個(gè)選擇會(huì)有兩條路徑:

let x = 5;

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

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

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

let x = 5;

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

如果有一個(gè)以上的情況下,可以使用 else if 語(yǔ)句:

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 :(");
}

這都是非常標(biāo)準(zhǔn)的語(yǔ)法結(jié)構(gòu)。然而,你也可以這樣做:

let x = 5;

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

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

let x = 5;

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

上面的代碼會(huì)正常執(zhí)行,因?yàn)?if 是個(gè)表達(dá)式。表達(dá)式的值是被選擇的那個(gè)分支中最后一個(gè)表達(dá)式的值。并且如果 if 語(yǔ)句后面沒(méi)有 else 語(yǔ)句,通常會(huì)將 () 作為語(yǔ)句執(zhí)行的結(jié)果。

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)