Typgrenzen

Wenn man einen parametrisierten Typ oder eine parametrisierte Methode definiert, kann es notwendig sein, Begrenzungen (bounds) für den Typ anzugeben. Beispielsweise kann ein parametrisierter Typ annehmen, dass ein bestimmter Typparameter über bestimmte Methoden verfügt.

Typobergrenzen

Betrachten wir die überladenen apply-Methoden in object scala.Array, mit denen man neue Arrays anlegen kann. Dazu gibt es optimierte Implementierungen für alle AnyVal-Typen. Und es gibt eine weitere Implementierung von apply, die für jeden Typ parametrisiert ist, der ein Subtyp von AnyRef ist. Hier suchen Sie die Implementierung in der Scala-Bibliothek:[5]

object Array {
  ...
  def apply[A <: AnyRef](xs: A*): Array[A] = {
    val array = new Array[A](xs.length) ...

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.