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);
}
}
留言
張貼留言