但 Scala 的 if statement 有 result 值,該 result 是最後一個執行到的 statement 的 result 值。
var n = 10 if (n == 10) println("is ten") else println("not ten")上述程式我們可以使用 if 的 result 值重新寫
println(if (n == 10) "is ten" else "not ten")由於 if statement 與 Java 相同,所以到此已完成本篇的目的。
請注意,Scala 沒有「三元運算子,ternary operator」,也就是「? ... :」。
int n = (a > 0) ? 10 : -10; // Scala 中沒有這樣的表示法上例在 Java 是合法的,但 Scala 已取消這種表示法。
「為甚麼要取消?ternary operator 好用啊?!」
答案很簡單,是為了要減少 Control Structure,可以少一個是一個。
但不表示 Scala 不給替代方式,你可使用 「if (cond) true_value else false_value」這樣的方式,由於 if statement 會有 result 值,所以可以取代 ternary opeator。
上面的 Java 例子,在 Scala 可寫為
var n = if (a > 0) 10 else -10
沒有留言:
張貼留言