Sie müssen die Funktion equals(other:Any):Boolean
definieren, dann gibt Scala Ihnen ==
kostenlos, definiert als
Siehe Kapitel 28 (Objektgleichheit) der Programmierung in Scala für mehr darüber, wie man die equals
-Funktion so schreibt, dass es wirklich eine Äquivalenzrelation ist.
Außerdem wird der Parameter x
, den Sie an Ihre Klasse übergeben, nicht als Feld gespeichert. Sie müssen es in class A(val x:Int)
... ändern, und dann wird es einen Accessor haben, mit dem Sie auf a.x
im Operator equals
zugreifen können.
Die Fehlermeldung ist aufgrund der Übereinstimmung mit einem Code in Predef etwas verwirrend. Aber hier geht es wirklich darum, dass Sie versuchen, die x
-Methode für Ihre A
-Klasse aufzurufen, aber keine Methode mit diesem Namen ist definiert.
Versuchen:
%Vor% stattdessen. Diese Syntax macht x
zu einem Mitglied von A
, komplett mit der üblichen Accessor-Methode.
Wie Ken Bloom erwähnt hat, ist es jedoch eine gute Idee, equals
anstelle von ==
zu überschreiben.