在哪里" ==" Scala List API中的方法?

时间:2016-12-16 04:49:53

标签: scala

我正在阅读" Scala编程"本书提到==final类中是Any,这意味着子类无法覆盖它,所以当我看到这个示例List(1,2) == List(1,2)时,我去找了API doc,我无法找到方法==,Scala如何在List中实际定义该方法?为什么它不在API文档中?

如果List类没有覆盖它,那么比较如何基于List项而不是对象引用?

2 个答案:

答案 0 :(得分:2)

==是课程Any中的最终方法,它会调用.equals

  

问:Scala如何在List中定义该方法?

     

答:Scala执行环境中的每个类都直接或继承   间接来自Any类。

Scala中的引用相等性为eq

答案 1 :(得分:1)

==在类Any 中是最终的,而Any scala 类层次结构中的根。 scala 中的每个类都会从Any默认延伸。因此,当在 scala 中调用==时,它将首先调用任何 ==方法。以及Any ==定义:

  

if(x eq null)eq null else x.equals(that)

请参阅:Any Class