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