【发布时间】:2011-05-18 17:46:04
【问题描述】:
我正在寻找这个问题的惯用解决方案。
我正在构建一个val Scala(不可变)映射,并希望添加一个或多个项目:
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
}
这是最好的方法吗?
【问题讨论】:
标签: scala immutability optional-values