尝试将find
中的Map
替换为fold
但没有成功。
我做了一个简单的例子,不深入研究我的类型细节。
如何用fold
替换它?
val s: Map[String, Int] = Map("1" -> 1, "2" -> 0, "3" -> 1)
s.find(_._2 == 0) match {
case Some((_, 0)) => "F"
case _ => "T"
}
答案 0 :(得分:2)
虽然确实可能有更好的解决方案而不是问题的折叠,但这是您的问题的答案:
val s: Map[String, Int] = Map("1" -> 1, "2" -> 0, "3" -> 1)
s.foldLeft("T") {
case (_, (_, 0)) => "F"
case (res, _) => res
}
关键是你必须继续传递迄今为止在默认情况下收集的结果。