3

Scalaのペアのリストで慣用的に検索する方法は?value(element, value)

次の解決策よりも優れた (おそらくより簡潔で効率的な) 方法はありますか?

code.find(_._1 == 2).get._2

codeタイプはどこList[(Int, String)]ですか?

scala> val code: List[(Int, String)] = (0, "zero") :: (1, "one") :: (2, "two") :: Nil
code: List[(Int, String)] = List((0,zero), (1,one), (2,two))
scala> code.find(_._1 == 2).get._2
res0: String = two
4

2 に答える 2

11

パターンマッチングはどうですか?

 code.collectFirst{ case(2, x) => x }

これによりSome(two)、さらにmap/が得られますfold

于 2013-04-30T09:41:35.663 に答える
0

これは次のようになります。

scala> code.toMap
res17: scala.collection.immutable.Map[Int,String] = Map(0 -> zero, 1 -> one, 2 -> two)

scala> res17(0)
res18: String = zero
于 2013-04-30T09:38:22.173 に答える