कहें कि मेरे पास एक ऐसा फ़ंक्शन है जो जांचता है कि कुछ ऑपरेशन ए के उदाहरण पर लागू होता है और यदि ऐसा है, तो बी या कोई नहीं का उदाहरण देता है:स्कैला: विकल्पों का संग्रह फ़िल्टर करना
def checker[A,B](a: A) : Option[B] = ...
अब मैं एक नया संग्रह बनाना चाहता हूं जिसमें सभी मान्य हैं बी के उदाहरण, कोई भी मूल्य छोड़ना। निम्न कोड नौकरी करने लगता है, लेकिन निश्चित रूप से एक बेहतर तरीका है:
val as = List[A](a1, a2, a3, ...)
val bs =
as
.map((a) => checker(a)) // List[A] => List[Option[B]]
.filter(_.isDefined) // List[Option[B]] => List[Option[B]]
.map(_.get) // List[Option[B]] => List[B]
धन्यवाद!
फ्लैटमैप जो –
@oxbow_lakes मुझे लगता है कि सही उद्धरण है: _ "यह क्या है? एमेच्योर घंटा? फ्लैटमैप जो बकवास करता है!" _ –
क्या यह उद्धरण ट्विटर पर उत्पन्न हुआ था? – huynhjl