Rust(2) - if, loop, for and while
Rust 類似 Scala 讓程式在流程分支時能夠回傳數值,這應該是一種現代語言的特徵。
1. if:
if 判斷式最簡單的用法
fn main() { let num = 10; if num%2 == 0 { println!("Even"); } else { println!("Odd"); } }
Rust 中 if 不但是判斷式,同時還是會回傳結果的表達式。
下面程式碼類似 C 的 :?。
fn main() { let his_emotion = "happy"; let her_emotion = if his_emotion == "happy" { "very happy" } else { "very unhappy" }; println!("her_emotion: {}", her_emotion) }
注意字串後面沒有加 ";",代表該值會被回傳。而 if 後面多了 ";" 代表表達式的結束。
2. loop:
Rust 中 loop 也是表達式,我們可以讓 loop 在 break 後回傳數值。
被回傳的數值依樣沒有 ";", 我們把 ";"寫在 loop 結束的地方。
fn main() { let mut counter = 0; let result = loop { counter +=1 ; if counter > 10 { break "task done" } }; println!("result: {}", result); }
3. while:
若上面的 loop 只是要計算次數不需要回傳值時可以用 while 代替。
fn main() { let mut counter = 0; while counter <= 10 { counter +=1; } }
4. for:
Rust 提供類似 Python 的 for loop,讓你可以輕松地循環數次。
下面語法類似 Python,i 包含 1 小於 10。
fn main() { for i in 1..10 { println!("{}", i); } }
簡單地反 iterate。
fn main() { for i in (1..10).rev() { println!("{}", i); } }
To iterate through an iterable。
fn main() { let arr = [1, 2, 3, 4, 5]; for it in arr.iter() { println!("{}", it); } }
留言
張貼留言