Es bedeutet Unit
zurück:
val res: Unit = new foo match {
case bar: Bar => println("First case statement")
case _ =>
}
Wenn Sie Ihre Aussage ändern etwas statt println
zurückzukehren (die Unit
zurückgibt):
val res: Any = new foo match {
case bar: Bar => "it's a bar"
case _ =>
}
Jetzt ist der Compiler Any
geschlossen hat, weil es das erste ist gemeinsamer Supertyp zwischen String
und Unit
.
Beachten Sie, dass Ihr Fall übereinstimmt falsch ist, da Abgleich auf bar
allein heißt, fangen alle Variablen, die Sie wahrscheinlich wollten bar: Bar
.
Mit Ihrer Antwort und Ihrer Bearbeitung einverstanden. –