Scala Language
Om uttryck
Sök…
Grundläggande om uttryck
I Scala (i motsats till Java och de flesta andra språk), if
är ett uttryck istället för ett uttalande . Oavsett är syntaxen identisk:
if(x < 1984) {
println("Good times")
} else if(x == 1984) {
println("The Orwellian Future begins")
} else {
println("Poor guy...")
}
Innebörden av if
att vara ett uttryck är att du kan tilldela resultatet av evalation av uttrycket till en variabel:
val result = if(x > 0) "Greater than 0" else "Less than or equals 0"
\\ result: String = Greater than 0
Ovan ser vi att if
uttrycket utvärderas och result
ställs in på det resulterande värdet.
Returtypen för ett if
uttryck är supertypen för alla logikgrenar. Detta innebär att för detta exempel är returtypen en String
. Eftersom inte alla if
uttryck returnerar ett värde (som ett if
uttalande som inte har någon else
grenlogik), är det möjligt att returtypen är Any
:
val result = if(x > 0) "Greater than 0"
// result: Any = Greater than 0
Om inget värde kan returneras (till exempel om endast biverkningar som println
används i de logiska grenarna) kommer returtypen att vara Unit
:
val result = if(x > 0) println("Greater than 0")
// result: Unit = ()
if
uttryck i Scala liknar hur den ternära operatören i Java fungerar. På grund av denna likhet finns det ingen sådan operatör i Scala: det skulle vara överflödigt.
Lockiga hängslen kan utelämnas i ett
if
uttryck om innehållet är en enda rad.