Scala: Passende Fallklassen

8

Der folgende Code behauptet, dass Jack in der Konstruktion beschäftigt ist, aber Jane ist noch ein weiteres Opfer der rauen Wirtschaft:

%Vor%

Warum erkennt die Übereinstimmung Jane nicht als Student?

    
divider 19.10.2011, 20:10
quelle

2 Antworten

4

Emil ist völlig richtig, aber hier ist ein Beispiel, um es klar zu machen:

%Vor%

Um genau zu sein, diese Zeile:

%Vor%

bedeutet wirklich

%Vor%

Unglücklicherweise, während Jane auf Jake instanziiert wurde, zeigt this in Janes Fall auf Jane selbst.

    
Daniel C. Sobral 19.10.2011, 22:20
quelle
5

Was ich glaube, passiert hier, dass die Student Fallklasse innerhalb von Person deklariert wird. Daher stimmt case Student in toString nur mit Student s überein, die Teil einer bestimmten Person -Instanz sind.

Wenn Sie die case class Student parallel zur case class Worker verschieben (und dann die unnötige extends Person("Jake") aus object Narrator ... entfernen, die nur dort ist, so dass die new Student eine% co_de ist) % spezifisch für Jake), Sie werden feststellen, dass Jane tatsächlich Biologie studiert.

    
Emil Sit 19.10.2011 20:22
quelle

Tags und Links