値が与えられているマップでキーを見つけようとしています。私はそれのために右の述語を把握することができないことによって、「検索」機能を使用しています:スカラのマップに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
}
私はマップを反復処理し、私は価値を知っているとき、キーを見つけるにはどうすればよいですか?
いくつか「赤」を返します。 –
@Core_Dumped:私はあなたがおそらくすでにそれを理解しているということを承諾したと仮定しますが、その場合には、実際には答えとしてコードを実行すると、キーを取得しますこれは '.getOrElse(default)._1 'のためのもので、' find'から取得した 'Option'から値を抽出します。デフォルトで' _1'は得られたペアの最初の要素を取得しますこれはマップの場合にはキーとなることがあります。 –