Scala Language
式の場合
サーチ…
基本式の場合
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