區塊
A block in Rust contains a sequence of expressions. Each block has a value and a type, which are those of the last expression of the block:
fn main() { let x = { let y = 10; println!("y: {y}"); let z = { let w = { 3 + 4 }; println!("w: {w}"); y * w }; println!("z: {z}"); z - y }; println!("x: {x}"); }
If the last expression ends with ;
, then the resulting value and type is ()
.
同樣的規則也適用於函式:函式的數值即為函式本體的回傳值:
fn double(x: i32) -> i32 { x + x } fn main() { println!("doubled: {}", double(7)); }
重點:
- 這張投影片所表達的重點在於 Rust 中的區塊具有一個數值以及一個型別。
- 你可以藉由改變區塊中的最後一行來觀察區塊數值的變化。舉例來說,新增或刪除一個分號,或者使用
return
。