list1 == list2
上記のチェックを行うために、Scala は両方のリストを反復処理し、要素の各ペアに対して equals を呼び出しますか?
(確かに、この質問は以前に尋ねられましたが、Google & Co で適切な回答を見つけることができませんでした)
Scaladoc を見て、それが定義されている場所を見つけてから、ソースを調べることで、任意のメソッドについてこれを自分で見つけることができます。オンライン ドキュメントから開始する場合は、クリックするだけでこれをすべて実行できます。メソッドに移動し、左側の矢印をクリックして開くと、オーバーライド クラスのリストが表示されます。最初のものに行き、ソースを見てください。
とにかく、この場合、および他の多くのコレクションGenSeqLike
のスーパートレイトである は、チェックの後に が続くものとして定義します。次に、両方の引数がs であるかどうかを確認し、そうである場合は、頭と尾を 1 つずつ分割することによって、要素の各ペアに対して equals を呼び出します。それ以外の場合は、デフォルトでイテレータを使用し、それぞれを呼び出してから要素を と比較します。List
equals
canEqual
sameElements
sameElements
LinearSeq
hasNext
equals
つまり、簡単に言うと、はい、要素の各ペアで equals を呼び出します (不一致が見つかるとすぐに停止します)。