我正在寻找一个解决这个问题的惯用方法。
我正在构建一个val
Scala(不可变)Map,并希望有选择地添加一个或多个项目:
val aMap =
Map(key1 -> value1,
key2 -> value2,
(if (condition) (key3 -> value3) else ???))
字符串
如果不使用var
,该如何实现这一点????
应该用什么来取代?使用+
运算符是否更好?
val aMap =
Map(key1 -> value1,
key2 -> value2) +
(if (condition) (key3 -> value3) else ???))
型
一种可能的解决方案是:
val aMap =
Map(key1 -> value1,
key2 -> value2,
(if (condition) (key3 -> value3) else (null, null))).filter {
case (k, v) => k != null && v != null
}
型
这是最好的办法吗?
3条答案
按热度按时间des4xlb01#
不如来点
字符串
yx2lnoni2#
另一种可能性是利用
Option
的可迭代特性。非空值
o
:字符串
空值
o
:型
5jvtdoz23#
您可以直接添加到Map:
字符串