運算子優先順序
本集目標
了解 Rust 的運算順序——先乘除後加減,以及怎麼用括號改變順序。
正文
上一集我們學了加減乘除,但如果把它們混在一起呢?電腦會先算哪個?
先乘除,後加減
fn main() {
println!("{}", 2 + 3 * 4);
}
你覺得答案是多少?
如果你覺得是 20(先算 2 + 3 = 5,再乘 4),那就錯了!
答案是 14。因為 Rust 跟數學一樣,先乘除,後加減。所以它先算 3 * 4 = 12,再算 2 + 12 = 14。
用括號改變順序
如果你真的想先算加法呢?加括號就對了:
fn main() {
println!("{}", (2 + 3) * 4);
}
這次答案就是 20 了。括號裡面的會先算,2 + 3 = 5,然後 5 * 4 = 20。
小訣竅
不確定順序的時候,加括號就對了。括號不只是改順序,有時也讓程式碼更好讀。就算順序本來就對,加個括號讓意圖更明確也沒什麼不好。
fn main() {
// 這兩行結果一樣,但第二行更清楚
println!("{}", 2 + 3 * 4);
println!("{}", 2 + (3 * 4));
}
重點整理
- Rust 的運算優先順序跟數學一樣:先乘除後加減
- 用括號
()可以強制改變運算順序 - 不確定順序時加括號,既安全又讓程式碼更好讀