1
我正在尋找一個慣用的方式來做到這一點:使用flatmap過濾和計算值的集合
val list = Seq(1, 2, 3, 4, 5, 6, 7)
list.flatMap(i => if (i % 2 == 0) Some(i * 2) else None)
list.flatMap(i => if (i % 2 == 0) (i * 2) :: Nil else Nil)
兩種方式可以返回預期的結果,我不知道哪種方式更好。謝謝你的時間!
編輯:
我知道list.filter(_ % 2 == 0).map(_ * 2)
有利於這個簡單的例子,但我真正的情況是複雜的,有用於過濾不止一個接受的條件,每個有過濾元件自身的處理功能。
語法是'list.filter(_%2 == 0)' – senia 2014-09-03 07:33:49
'Seq(1,2,3,4,5,6,7).filter(_%2!= 0).map( _ * 2)'? – 2014-09-03 07:34:00