サーチ…


基本式の場合

Scalaでは(Javaや他のほとんどの言語とは対照的に)、 ifステートメントではなくです。それにかかわらず、構文は同じです:

if(x < 1984) {
   println("Good times")
} else if(x == 1984) {
   println("The Orwellian Future begins")
} else {
   println("Poor guy...")
}

式であるifの意味は、式の評価の結果を変数に代入できるということです。

val result = if(x > 0) "Greater than 0" else "Less than or equals 0"
\\ result: String = Greater than 0

上では、 if式が評価され、 resultがその結果の値に設定されているresultがわかります。

if式の戻り値の型は、すべての論理分岐のスーパータイプです。つまり、この例では戻り値の型はStringです。すべてではないので、 ifの式は(のような値を返すif何も持っていない文でelse分岐ロジックを)、戻り値の型がある可能性があるAny

val result = if(x > 0) "Greater than 0"
// result: Any = Greater than 0

返される値がない場合( printlnような副作用だけが論理ブランチ内で使用される場合など)、戻り値の型はUnit

val result = if(x > 0) println("Greater than 0")
// result: Unit = ()

if Scalaでは表現はどのように似ていたJavaでの三項演算機能。この類似性のために、Scalaにはそのような演算子がありません。これは冗長です。

コンテンツが1行の場合、 if式で中括弧を省略することができます。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow