考虑example
object Main extends App {
case class ref(val target: Object)
val map: Map[Int, ref] = Map(1 -> ref(null), 2 -> ref("2"))
//> map : Map[Int,o.ref] = Map(1 -> ref(null), 2 -> ref(2))
def request(id: Int, default: Object) = {
println(map.get(id) map (_.target) match {
case Some(result) => result
case None => default
})
} //> request: (id: Int, default: Object)Unit
request(0, "fixed 0") //> fixed 0
request(1, "fixed 1") //> null
request(2, "fixed 2") //> 2
}
如您所见,选项 1 结果为 null。我希望这样的目标能够同样处理,数据库中没有匹配项。如何将 Some(null)
转换为 None
?
最佳答案
您可以使用过滤器
:
map (_.target) filter (_ != null)
关于scala - 如何将选项转换为无?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34017527/