基本的には、指定されたリスト内のキーのために、同じ順序キーが与えられたマップの値を取得する必要があります。Scalaのキーのリストを与えられたマップからの値の取得
val kv = Map("k3" -> "v3", "k1" -> "v1", "k2" -> "v2")
val ks = List("k1", "k2")
私が即興でいる可能性が最もよくfoldRight
ks
オーバーです:
scala> (ks foldRight List[String]()) { (v, a) => kv(v) :: a }
res7: List[String] = List(v1, v2)
は、標準のlibまたはちょうど短いコードでこれを行うには、任意のより便利な方法は、同様に理想的なものkv getVals ks
ありますか? :)
質問はあまり重要ではありませんが、もちろん良いスタイルに向かって探究しようとしています。
ここでは、「foldLeft」のほうがよいでしょうか? foldRightはList.scalaの再帰によって実装されている反面、反復処理によって実装されているので、これはもっと良いスタイルになると思います。 –
答えは以下です:) – dmitry