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