マップからいくつかの値を取得するにはどうすればよいですか?このため は、私は次のコードスカラマップマップにcontainsが含まれている場合、いくつかの値を取得します
val params:mutable.Map[String,String]=mutable.Map.empty
Seq(params.lift("Name"),params.lift("Surname")).flatten.mkString(" ")
を使用しかし、おそらくよりよい解決策はありますか?
マップからいくつかの値を取得するにはどうすればよいですか?このため は、私は次のコードスカラマップマップにcontainsが含まれている場合、いくつかの値を取得します
val params:mutable.Map[String,String]=mutable.Map.empty
Seq(params.lift("Name"),params.lift("Surname")).flatten.mkString(" ")
を使用しかし、おそらくよりよい解決策はありますか?
私はそれはあなたが望むものであることを確認していないが、私はあなたの二行目のこの変更は、もう少し読みやすいと思う:理解のために仕事を得ることができ、コメントで示唆したように
Seq("Name", "Surname").flatMap(params.lift(_)).mkString(" ")
もう一度やった。個人的な味に応じて、どちらのアプローチも好ましいことがあります。
import scala.collection.mutable
def multiget[K, V](map: scala.collection.Map[K, V], keys: K*): Seq[V] =
for {
key <- keys
value <- map.get(key)
} yield value
val data = mutable.Map("Name" -> "John", "Surname" -> "Smith")
multiget(data, "Name", "Surname").mkString(" ")
多分理解のためですか? – rethab