2012-06-20 16 views
13
list1 == list2 

Yukarıdaki kontrolü yapmak için, Scala her iki öğe üzerinde yineleme yapar ve her öğe çiftinde eşittir?Scala'nın eşittir yöntemi bir Liste durumunda nasıl çalışır?

Sen Scaladoc bakarak ve dışarı bularak herhangi bir yöntemle bu kendinizi bulabilirsiniz

+0

Kodu incelediniz mi? Scala açık kaynak. –

+0

Çalıştırmayı denediniz mi? –

+2

@Tyler: Evet, ancak doğru bir kod parçasını bulamadım, çünkü List diğer birçok sınıfı genişletiyor. –

cevap

24

(Bu soru daha önce sorulmuş ama Google & Co ile iyi bir cevap bulamadık, eminim) nerede tanımlanır ve sonra kaynağa bakılır. Eğer online docs ile başlarsanız, bunu sadece tıklayarak tıklatarak yapabilirsiniz: yönteme git, soldaki oku tıklatarak aç ve geçersiz kılan sınıfların bir listesini göreceksin. İlkine git ve kaynağa bak.

Neyse, bu durumda, GenSeqLike yılında, bir List ait supertrait ve diğer birçok koleksiyonları, sameElements ardından canEqual çek olarak equals tanımlar. Sırasıyla, sameElements, her iki bağımsız değişkenin LinearSeq s olup olmadığını kontrol eder ve eğer öyleyse, baş ve kuyruğu birbirinden ayırmak suretiyle her bir öğe çiftine eşit çağrı yapılır. Aksi takdirde, yinelemeyi kullanmak, her birine hasNext numaralı telefonu çağırmak ve öğeleri equals ile karşılaştırmak varsayılan olarak kabul edilir.

Uzun öykü kısa: evet, her bir öğe çiftine eşittir (yanlış eşleşme bulur bulmaz durur).

+3

Mükemmel, çok teşekkür ederim. Bu çok yardımcı oldu (ayrıca gelecek araştırmalar için). –

İlgili konular