스칼라의 ==
메서드는 Java의 equals 메서드와 동일한 의미를가집니다. 그러나 재귀 구조의 인스턴스에 적용 할 때 이해하고 싶습니다. 나는 BinaryExp
의 두 인스턴스가있을 때 obj1
및 obj2
이 깊은 (재귀) 평등 테스트에 obj1 == obj2
결과를하지 말, 그리고재귀 적으로 정의 된 유형의 스칼라 및 == 메서드
abstract class Exp
abstract class BinaryExp(l:Exp, r:Exp) extends Exp
case class Plus(l:Exp, r:Exp) extends BinaryExp(l,r)
case class Minus(l:Exp, r:Exp) extends BinaryExp(l,r)
case class Mult(l:Exp, r:Exp) extends BinaryExp(l,r)
case class Div(l:Exp, r:Exp) extends BinaryExp(l,r)
case class Num(v:Int) extends Exp
: 예를 들어, 표현의 무리를 고려? 즉, obj1 == obj2
이 성립한다면, obj1
과 obj2
은 똑같은 표현식 트리를 나타내는 것입니까?
모든 클래스에서 기본 구현 인 ==
에 의존합니다 (어느 곳에서도 대체되지 않음).