Was ist der Grund für das Hinzufügen des Schlüsselworts "case" zu Scala?

Außer, abgesondert, ausgenommen:

case class A

...Fall was ist ganz nützlich?

Warum müssen wir verwendencase immatch? Würde nicht:

x match {
  y if y > 0 => y * 2
  _ => -1
}

... Seinviel hübscher und prägnanter?

Oder warum müssen wir verwendencase Wann nimmt eine Funktion ein Tupel? Sagen wir, wir haben:

val z = List((1, -1), (2, -2), (3, -3)).zipWithIndex

Nun ist nicht:

z map { case ((a, b), i) => a + b + i }

...Weg hässlicher als nur:

z map (((a, b), i) => a + b + i)

...?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage