說我有,檢查某些操作是否適用於實例的功能,如果有的話,返回B或無的一個實例:斯卡拉:過濾選項的集合
def checker[A,B](a: A) : Option[B] = ...
現在我想以形成包含B的所有有效實例的新集合,並刪除None值。下面的代碼似乎是做這項工作,但肯定有更好的辦法:
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]
謝謝!
flatMap that shit –
@oxbow_lakes我相信正確的引用是:_「這是什麼?業餘時間?flatMap那狗屎!」_ –
這個引號是否起源於twitter? – huynhjl