在這裏,我試圖從(String , Option[Int])
列表中移除None
類型,其中None
類型可以是在元組位置2:如何從列表[(String,Option [Int])]中刪除無類型?
val l : List[(String , Option[Int])] = List(
("a" , None),
("b" , Option(1)),
("c" , Option(2))
)
val filteredSomes = for {
(e <- l)
if(e._2 >= 0)
} yield e
println(filteredSomes);
但是,這並不編譯:
原因錯誤:
')' expected but '<-' found.
[error] (e <- l)
[error] ^
可以使用flatten
而不是每個?
哪裏非負約束?如果我正確理解OP要的是什麼,表達式應該是'l.filter(_._ 2.exists(_> = 0))'。 – Jubobs
哦,我沒有看到那部分。您也可以摺疊選項: 1.filter(_._ 2.fold(false)(_> = 0)) 哪一個basicall表示如果_._ 2是None,則返回false,否則返回結果> = 0 – rleibman