为什么这些集合都不同?
case class Point(x:Int = 0, y:Int = 0)
Set(Point, Point) // Set(Point)
Set(Point, Point(0,0)) // Set(Point, Point(0,0))
Set(Point(0,0), Point(x=0,y=0)) // Set(Point(0,0), Point(0,0))
set equality也是false。
我认为即使使用默认值,equals和hashCode也会依赖于值,而不是字符串或其他内容。
答案 0 :(得分:1)
Set(Point) : scala.collection.immutable.Set[Point.type]
Set(Point, Point(0,0)) : scala.collection.immutable.Set[Serializable]
Set(Point(0,0)) : scala.collection.immutable.Set[Point]