(可选)将项目添加到Scala地图 [英] Optionally adding items to a Scala Map
本文介绍了(可选)将项目添加到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屋!
查看全文