Ich habe eine Case-Klasse namens Quadrat und ich möchte auf eine Variable in ihm namens Seite zugreifen. Ich möchte dann die Mustererkennung verwenden, um zu erkennen, dass das Objekt vom Typ "Quadrat" und "Rückseite" * ist. Allerdings, wenn ich die unten laufen bekomme ich Wert Seite kein Mitglied dieses Objekts A $ A43.this.squareAuf Variablen in Case-Klassen zugreifen
case class square(side:Double)
def getArea(o: Object): Double = {
o match {
case s: square => s.side*s.side
case _ => 0
}
}
Vielen Dank im Voraus für jede Beratung oder Unterstützung ist.
Wahrscheinlich möchten Sie Ihre Fallklasse groß schreiben und 'case Square (s) => s * s' haben. Außerdem können Sie im Catch-All-Zweig nicht 'null' zurückgeben, da 'Double' ein Werttyp ist. – Alec
@Alec Danke, dass dein Vorschlag perfekt funktioniert hat, ich hatte 0 in meinem Code Ich habe das gerade geschrieben, um ein Beispiel zu geben. Ich werde es jetzt aktualisieren und eine funktionierende Antwort hinzufügen. –
"Ich möchte dann die Mustererkennung verwenden, um zu erkennen, dass das Objekt vom Typ" Quadrat "und" Rückseite "ist." Wenn Sie Objekt dann Mustererkennung akzeptieren, ist das ein bisschen wie ein Code-Geruch. Brauchst du das wirklich? –