學習Rust 條件語句

roc_guo發表於2020-12-04

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

例項

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

在上述程式中有條件 if 語句,這個語法在很多其它語言中很常見,但也有一些區別:首先,條件表示式 number < 5 不需要用小括號包括(注意,不需要不是不允許);但是 Rust 中的 if 不存在單語句不用加 {} 的規則,不允許使用一個語句代替一個塊。儘管如此,Rust 還是支援傳統 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);
}

執行結果:

b 為 1

Rust 中的條件表示式必須是 bool 型別,例如下面的程式是錯誤的:

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

雖然 C/C++ 語言中的條件表示式用整數表示,非 0 即真,但這個規則在很多注重程式碼安全性的語言中是被禁止的。

結合之前章學習的函式體表示式我們加以聯想:

if{ block 1 } else { block 2 }

這種語法中的 { block 1 } 和 { block 2 } 可不可以是函式體表示式呢?

答案是肯定的!也就是說,在 Rust 中我們可以使用 if-else 結構實現類似於三元條件運算表示式 (A ? B : C) 的效果:

例項

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

執行結果:

number 為 1

注意:兩個函式體表示式的型別必須一樣!且必須有一個 else 及其後的表示式塊。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2739312/,如需轉載,請註明出處,否則將追究法律責任。

相關文章