Вы должны определить функцию equals(other:Any):Boolean
, тогда Scala даст вам ==
бесплатно, определенную как
class Any{
final def == (that:Any):Boolean =
if (null eq this) {null eq that} else {this equals that}
}
См. Главу 28 («Равенство объектов») программирования в Scala для получения дополнительной информации о том, как написать функцию equals
, чтобы это действительно было отношение эквивалентности.
Более того, параметр x
, который вы передаете своему классу, не сохраняется как поле. Вам нужно изменить его на class A(val x:Int)
..., и тогда у него будет средство доступа, которое вы можете использовать для доступа к a.x
в операторе equals
.