Über untere Grenze in Scala

8

Ich lerne Scala und habe eine Frage bezüglich der unteren Grenze.

Ich habe eine Klasse:

%Vor%

Was ich gefunden habe, ist das für eine Queue irgendeines Typs, z.B.:

%Vor%

Alle drei Zeilen darunter werden kompilieren

%Vor%

Meine Frage ist: Wenn wir die untere Schranke benutzen, um U zu definieren, muss ein Super-Typ von T sein, in den obigen Zeilen ist Apple eindeutig kein Super-Typ von Obst, wie kann er an die Enqueue-Funktion übergeben werden?

Die "andere" Klasse ist überhaupt nicht in der Fruchthierarchie, wie kann sie in der Enqueue-Funktion verwendet werden?

Bitte helfen Sie mir dabei.

Grüße Kevin

    
Kevin 23.03.2012, 07:45
quelle

2 Antworten

12

Wenn Sie sich ansehen, was Ihre neuen Warteschlangen zurückgeben:

%Vor%

Was Sie gesagt haben, dass speziell U ein Super-Typ von T (oder T) sein sollte. Dies bedeutet, dass eine andere Funktion großartig ist, weil ScalaObject der spezifischste Supertyp von Another und Fruit ist.

    
thoredge 23.03.2012 08:18
quelle
5
  

Meine Frage ist: Wenn wir die untere Schranke benutzen, um U zu definieren, muss ein Super-Typ von T sein, in den obigen Zeilen ist Apple eindeutig kein Super-Typ von Obst, wie kann er an die Enqueue-Funktion übergeben werden?

Aber new Apple ist ein Fruit und Fruit ist ein Supertyp von Fruit . In Ihrem Fall ist U also Fruit und Queue[Fruit] wird zurückgegeben. Und new Another ist ein ScalaObject , was auch ein Supertyp von Fruit ...

ist     
Alexey Romanov 23.03.2012 10:08
quelle

Tags und Links