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

उपर्युक्त चेक करने के लिए, स्केल को दोनों सूचियों के माध्यम से पुनरावृत्त किया जाएगा और तत्वों की प्रत्येक जोड़ी पर बराबर कॉल होगा?सूची के मामले में स्कैला के बराबर विधि कैसे काम करती है?

+0

क्या आपने कोड देखा है? स्कैला ओपन सोर्स है। –

+0

क्या आपने इसे चलाने का प्रयास किया है? –

+2

@ टाइलर: हाँ, लेकिन मुझे कोड का सही पीईसी नहीं मिला, क्योंकि सूची कई अन्य वर्गों को फैली हुई है। –

उत्तर

24

आप Scaladoc देख रही है और यह जानने से किसी भी विधि के लिए अपने आप को बाहर इस मिल सकता है (मुझे यकीन है कि, इस सवाल से पहले कहा गया है, लेकिन मैं गूगल & सह के साथ एक अच्छा जवाब नहीं मिल सकता है कर रहा हूँ) जहां यह परिभाषित किया गया है, और फिर स्रोत को देख रहे हैं। यदि आप online docs से शुरू करते हैं, तो आप इसे बस क्लिक करके कर सकते हैं: विधि पर जाएं, बाईं ओर तीर पर क्लिक करके इसे खोलें, और आपको ओवरराइडिंग कक्षाओं की एक सूची दिखाई देगी। पहले पर जाएं, और स्रोत को देखें।

वैसे भी, इस मामले में, GenSeqLike में, List के supertrait और कई अन्य संग्रह, equals एक canEqual जांच sameElements के बाद के रूप में परिभाषित करता है। बदले में, sameElements जांच करता है कि दोनों तर्क LinearSeq एस हैं, और यदि ऐसा है, तो कॉल सिर और पूंछ को एक-एक करके विभाजित करके तत्वों की प्रत्येक जोड़ी पर बराबर होती है। अन्यथा यह प्रत्येक पर hasNext पर कॉल करने और फिर equals के साथ तत्वों की तुलना करने के लिए iterators का उपयोग करने के लिए डिफ़ॉल्ट है।

तो, लंबी कहानी छोटी: हाँ, यह तत्वों की प्रत्येक जोड़ी पर बराबर कॉल करती है (जैसे ही इसे मेल नहीं मिलती है)।

+3

बिल्कुल सही, बहुत बहुत धन्यवाद। इससे बहुत मदद मिली (भविष्य के शोधों के लिए भी)। –

संबंधित मुद्दे