Rust 條件語句

在 Rust 語言中的條件語句使這種格式的:

fn main() {
    let number = 3; 
    if number < 5 { 
        println!("條件為 true"); 
    } else { 
        println!("條件為 false"); 
    } 
}

在上述程序中有條件 if 語句,這個語法在很多其它語言中很常見,但也有一些區(qū)別:首先,條件表達(dá)式 number < 5 不需要用小括號包括(注意,不需要不是不允許);但是 Rust 中的 if 不存在單語句不用加 {} 的規(guī)則,不允許使用一個語句代替一個塊。盡管如此,Rust 還是支持傳統(tǒng) else-if 語法的:

fn main() { 
    let a = 12; 
    let b; 
    if a > 0 { 
        b = 1; 
    }  
    else if a < 0 { 
        b = -1; 
    }  
    else { 
        b = 0; 
    } 
    println!("b is {}", b); 
}

運(yùn)行結(jié)果:

b 為 1

Rust 中的條件表達(dá)式必須是 bool 類型,例如下面的程序是錯誤的:

fn main() { 
    let number = 3; 
    if number {   // 報錯,expected `bool`, found integerrustc(E0308)
        println!("Yes");
    } 
}

雖然 C/C++ 語言中的條件表達(dá)式用整數(shù)表示,非 0 即真,但這個規(guī)則在很多注重代碼安全性的語言中是被禁止的。

結(jié)合之前章學(xué)習(xí)的函數(shù)體表達(dá)式我們加以聯(lián)想:

if <condition> { block 1 } else { block 2 }

這種語法中的 { block 1 }{ block 2 } 可不可以是函數(shù)體表達(dá)式呢?

答案是肯定的!也就是說,在 Rust 中我們可以使用 if-else 結(jié)構(gòu)實(shí)現(xiàn)類似于三元條件運(yùn)算表達(dá)式 (A ? B : C) 的效果:

fn main() { 
    let a = 3; 
    let number = if a > 0 { 1 } else { -1 }; 
    println!("number 為 {}", number); 
}

運(yùn)行結(jié)果:

number 為 1

注意:兩個函數(shù)體表達(dá)式的類型必須一樣!且必須有一個 else 及其后的表達(dá)式塊。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清