Я ищу идиоматическое решение этой проблемы.
Я строю 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
}
Это лучший способ?