如何在一个列表的情况下,Scala的equals方法的工作?(How does Scala'

2019-09-18 07:37发布

list1 == list2

要做到上述检查,将斯卡拉遍历两个列表,并在每一对元素的召唤等于?

(我相信,这个问题已经被问过,但我无法找到与谷歌&CO一个很好的答案)

Answer 1:

您可以通过查看Scaladoc,找出在那里的定义,然后查看源的任何方法找到这个自己。 如果你开始与在线文档 ,你可以点击做到这一切只是:去的方法,通过点击左边的箭头打开它,你会看到压倒一切的类的列表。 转至第一位的,看看源。

不管怎样,在这种情况下, GenSeqLike ,的supertrait List和许多其他收藏品,定义equalscanEqual检查之后sameElements 。 反过来, sameElements检查是否两个参数都是LinearSeq S,并且如果是,调用通过由一个分裂的头部和尾部隔开一等于每对元件。 否则默认为使用迭代器,调用hasNext每个,然后将与所述元件equals

所以,长话短说:是的,它要求等于每对元素(如一旦发现不匹配停止)的。



文章来源: How does Scala's equals method work in the case of a List?