मान लें कि आपके पास एक सूची है (1, "1") यह टाइप की गई सूची [कोई भी] है, जो निश्चित रूप से सही और अपेक्षित है। अब अगर मैं इसफिल्टर के लिए स्कैला संग्रह प्रकार
scala> List(1, "1") map {
| case x: Int => x
| case y: String => y.toInt
| }
की सूची को मानचित्रित करता हूं जिसके परिणामस्वरूप प्रकार सूची [Int] है। मेरा सवाल यह है कि फिल्टर के लिए मानचित्र के बराबर है क्योंकि निम्न उदाहरण के परिणामस्वरूप सूची [कोई भी] होगी। क्या यह संभव है? मुझे लगता है कि इसे संकलित समय और संभावित रूप से रनटाइम पर हल किया जा सकता है?
scala> List(1, "1") filter {
| case x: Int => true
| case _ => false
| }
क्यों है एक गार्ड के साथ केवल संभव है? –
क्षमा करें, यह वास्तव में बेवकूफ टिप्पणी थी। लेकिन फ़िल्टर() आंशिक मानचित्र जैसे परिणाम उत्पन्न क्यों नहीं कर रहा है? –
@ जोआ 'फ़िल्टर' संग्रह के प्रकार को नहीं बदलता है, क्योंकि यह इसके तत्वों को संशोधित नहीं करता है। –