我想在一个Map中找到一个键,给出一个值.我正在使用'find'函数,因为它无法为它找出正确的谓词:
val colors = Map(1 -> "red", 2 -> "blue")
def keyForValue(map: Map[Int, String], value: String) = {
val bool = map.find{map.foreach{map.values(i) == value}}
bool.key
}
Run Code Online (Sandbox Code Playgroud)
当我知道值时,如何迭代地图并找到密钥?
mik*_*łak 13
您可以使用同一种谓词与一List,但请记住,你在评估其(key,value)对,而不是只值(和获得一对回的!) .
简单的例子:
val default = (-1,"")
val value = "red"
colors.find(_._2==value).getOrElse(default)._1
Run Code Online (Sandbox Code Playgroud)