2011年5月4日 星期三

4-3. 控制結構 --if statement

Scala 的 if statement 與 Java 的 if statement 在格式上完全相同。
但 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

沒有留言:

張貼留言