“在哪里?”==&引用;Scala列表API中的方法?
我正在读《Scala中的编程》一书,书中提到“在哪里?”==&引用;Scala列表API中的方法?,scala,Scala,我正在读《Scala中的编程》一书,书中提到=是类中的final,这意味着子类不能重写它,所以当我看到这个示例列表(1,2)==List(1,2),我去查找文档,我找不到方法=,Scala实际上是如何在列表中定义该方法的?为什么它不在API文档中 如果它没有被列表类覆盖,那么如何基于列表项而不是对象引用进行比较?=是类中的最后一个方法,它调用.equals 问:Scala实际上是如何在列表中定义该方法的 答:Scala执行环境中的每个类都直接或间接继承 间接来自任何类 Scala中的引用等式是e
=
是类中的final
,这意味着子类不能重写它,所以当我看到这个示例列表(1,2)==List(1,2)
,我去查找文档,我找不到方法=
,Scala实际上是如何在列表中定义该方法的?为什么它不在API文档中
如果它没有被列表
类覆盖,那么如何基于列表
项而不是对象引用进行比较?=
是类中的最后一个方法,它调用.equals
问:Scala实际上是如何在列表中定义该方法的
答:Scala执行环境中的每个类都直接或间接继承
间接来自任何
类
Scala中的引用等式是eq=
是类Any
中的最终方法,它调用.equals
问:Scala实际上是如何在列表中定义该方法的
答:Scala执行环境中的每个类都直接或间接继承
间接来自任何
类
Scala中的引用等式是eq==在任何类中都是最终的,并且Any
是Scala类层次结构中的根。scala中的每个类都将从Any
default扩展。因此,当在scala中调用=
时,它将首先调用Any=
方法。对于任何==
定义:
如果(x eq null)该eq null,否则x等于(该)
请参阅:==在类Any中是最终的,而Any
是scala类层次结构中的根。scala中的每个类都将从Any
default扩展。因此,当在scala中调用=
时,它将首先调用Any=
方法。对于任何==
定义:
如果(x eq null)该eq null,否则x等于(该)
看:我好像问了一个愚蠢的问题。我认为vala=List(1,2)
和valb=List(1,2)
具有相同的对象引用,因为它们像字符串一样是不可变的。似乎我问了一个愚蠢的问题。我认为vala=List(1,2)
和valb=List(1,2)
具有相同的对象引用,因为它们像字符串一样是不可变的。