है, मैं स्कैला के लिए नया हूं और मुझे टाइप सिस्टम के बारे में कोई सवाल है।स्कैला प्रकार चेकर एक सूची में फ़्लैटन को कॉल करने से रोकने के लिए कैसे जानता है जो पहले से ही फ्लैट
फ़्लैटन विधि नेस्टेड संग्रहों पर काम करती है, इसलिए यदि मेरे पास सूची की सूची है तो यह इसे एक सूची में फट जाएगा। लेकिन यह पहले से ही एक संग्रह पर flatten कॉल करने के लिए समझ में नहीं आता है। और निश्चित रूप से पर्याप्त स्कैला प्रकार चेकर इसे एक त्रुटि के रूप में ध्वजांकित करेगा।
List(List(1,2,3),List(4,5,6)).flatten // produces List(1,2,3,4,5,6)
List(1,2,3,4).flatten // type error
मैं समझता हूं कि यह किसी भी तरह से फ़्लैटन करने के लिए एक अंतर्निहित पैरामीटर पर निर्भर करता है। लेकिन मुझे नहीं पता कि निहित मूल्य कहां से आता है और ऑब्जेक्ट फ़्लैटन के प्रकार पर जोर देने के लिए इसका उपयोग कैसे किया जाता है। साथ ही, List.flatten के लिए scaladocs में अंतर्निहित पैरामीटर क्यों दिखाई नहीं देता है?
रूपांतरण को अंतर्निहित नहीं होना चाहिए, यह भी काम करता है: सूची (1-> 2,3-> 4) .flatten (पी => सूची (पी ._1, पी ._2)) –
निश्चित रूप से, कोई अंतर्निहित पैरामीटर स्पष्ट रूप से भी पारित किया जा सकता है। –