(可选)将项目添加到Scala地图 [英] Optionally adding items to a Scala Map

查看:95
本文介绍了(可选)将项目添加到Scala地图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在寻找解决该问题的惯用方法.

I am looking for an idiomatic solution to this problem.

我正在构建val Scala(不可变)地图,并想选择添加一个或多个项目:

I am building a val Scala (immutable) Map and would like to optionally add one or more items:

val aMap =
  Map(key1 -> value1,
      key2 -> value2,
      (if (condition) (key3 -> value3) else ???))

如何在不使用var的情况下完成此操作?用什么代替????使用+运算符更好吗?

How can this be done without using a var? What should replace the ???? Is it better to use the + operator?

val aMap =
  Map(key1 -> value1,
      key2 -> value2) +
  (if (condition) (key3 -> value3) else ???))

一种可能的解决方案是:

One possible solution is:

val aMap =
  Map(key1 -> value1,
      key2 -> value2,
      (if (condition) (key3 -> value3) else (null, null))).filter {
        case (k, v) => k != null && v != null
      }

这是最好的方法吗?

推荐答案

类似的事情

val optional = if(condition) Seq((key3 -> value3)) else Nil
val entities = Seq(key1 -> value1, key2 -> value2) ++ optional
val aMap = Map(entities:_*)

这篇关于(可选)将项目添加到Scala地图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆