list1 == list2
उपर्युक्त चेक करने के लिए, स्केल को दोनों सूचियों के माध्यम से पुनरावृत्त किया जाएगा और तत्वों की प्रत्येक जोड़ी पर बराबर कॉल होगा?सूची के मामले में स्कैला के बराबर विधि कैसे काम करती है?
list1 == list2
उपर्युक्त चेक करने के लिए, स्केल को दोनों सूचियों के माध्यम से पुनरावृत्त किया जाएगा और तत्वों की प्रत्येक जोड़ी पर बराबर कॉल होगा?सूची के मामले में स्कैला के बराबर विधि कैसे काम करती है?
आप Scaladoc देख रही है और यह जानने से किसी भी विधि के लिए अपने आप को बाहर इस मिल सकता है (मुझे यकीन है कि, इस सवाल से पहले कहा गया है, लेकिन मैं गूगल & सह के साथ एक अच्छा जवाब नहीं मिल सकता है कर रहा हूँ) जहां यह परिभाषित किया गया है, और फिर स्रोत को देख रहे हैं। यदि आप online docs से शुरू करते हैं, तो आप इसे बस क्लिक करके कर सकते हैं: विधि पर जाएं, बाईं ओर तीर पर क्लिक करके इसे खोलें, और आपको ओवरराइडिंग कक्षाओं की एक सूची दिखाई देगी। पहले पर जाएं, और स्रोत को देखें।
वैसे भी, इस मामले में, GenSeqLike
में, List
के supertrait और कई अन्य संग्रह, equals
एक canEqual
जांच sameElements
के बाद के रूप में परिभाषित करता है। बदले में, sameElements
जांच करता है कि दोनों तर्क LinearSeq
एस हैं, और यदि ऐसा है, तो कॉल सिर और पूंछ को एक-एक करके विभाजित करके तत्वों की प्रत्येक जोड़ी पर बराबर होती है। अन्यथा यह प्रत्येक पर hasNext
पर कॉल करने और फिर equals
के साथ तत्वों की तुलना करने के लिए iterators का उपयोग करने के लिए डिफ़ॉल्ट है।
तो, लंबी कहानी छोटी: हाँ, यह तत्वों की प्रत्येक जोड़ी पर बराबर कॉल करती है (जैसे ही इसे मेल नहीं मिलती है)।
बिल्कुल सही, बहुत बहुत धन्यवाद। इससे बहुत मदद मिली (भविष्य के शोधों के लिए भी)। –
क्या आपने कोड देखा है? स्कैला ओपन सोर्स है। –
क्या आपने इसे चलाने का प्रयास किया है? –
@ टाइलर: हाँ, लेकिन मुझे कोड का सही पीईसी नहीं मिला, क्योंकि सूची कई अन्य वर्गों को फैली हुई है। –