Versiegelte Klassenhierarchien
Im „Case-Klassen“ haben wir das Pattern-Matching mit unserer Shapes
-Hierarchie demonstriert und dabei Case-Klassen verwendet. Dabei gab es den Default-Ausdruck case _ => ...
. Im Allgemeinen ist es klug, einen solchen zu haben: Andernfalls wird der Laufzeitfehler scala.MatchError
ausgelöst, sobald jemand einen neuen Subtyp zu Shape
definiert und dieser match
-Anweisung übergibt, denn die neue Form wird mit keiner der Formen übereinstimmen, die durch die Match-Anweisung abgedeckt sind. Allerdings ist es nicht immer möglich, ein sinnvolles Verhalten für den Default-Fall zu definieren.
Wenn Sie wissen, dass eine Änderung in der Hierarchie der Case-Klassen unwahrscheinlich ist, und wenn es möglich ist, die ganze Hierarchie ...
Get Programmieren mit Scala now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.