在这里,我试图从(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