Kapitel 13. Die Scala-Typenhierarchie

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Wir haben bereits viele der in der Scala-Bibliothek verfügbaren Typen kennengelernt. Jetzt geht es um die Details der Typenhierarchie. In Kapitel 14 werden wir die Sammlungen besprechen. Abbildung 13-1 zeigt die große Struktur der Hierarchie für Scala-Typen.

ps3e 1301
Abbildung 13-1. Die Typenhierarchie von Scala

An der Wurzel der Typenhierarchie steht Any. Er hat keine Supertypen und vier Subtypen:

  • Matchable, der Supertyp aller Typen, die Mustervergleiche unterstützen, was wir in "Sicherer Mustervergleich mit Matchable" besprochen haben . Matchable ist auch ein Supertyp von AnyVal und AnyRef.

  • AnyValist der Supertyp von Werttypen und Wertklassen.

  • AnyRefder Supertyp aller Referenztypen.

  • Universelle Eigenschaften, die wir in "Werteklassen" besprochen haben .

AnyVal hat neun konkrete Untertypen, die sogenannten Werttypen. Sie erfordern keine Heap-Zuweisung von Instanzen. Sieben von ihnen sind numerische Wertetypen:Byte,Char,Short,Int,Long,Float, undDoubleDie beiden anderen sind nicht numerisch:Unit undBoolean.

Werteklassen erweitern auch AnyVal (siehe "Werteklassen").

Im Gegensatz dazu sind alle anderen Typen Referenztypen, da ihre Instanzen auf dem Heap alloziert und per Referenz verwaltet werden. Sie sind Untertypen ...

Get Scala programmieren, 3. Auflage 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.