Пусть есть карта config: Map[String, String]
.
И есть несколько ключей: "foo", "bar", ...
Мне нужно убедиться, что все ключи присутствуют в config
. И если они присутствуют, мне нужно вызвать функцию со значениями для этих ключей на карте config
:
fun(config("foo"), config("bar"), config(...), ...)
Решение является следующим:
val res = Option.when(config.contains("foo") & config.contains("bar") & config.contains(...) & ...)
( fun(config("foo"), config("bar"), config(...), ...) )
Или, может быть, :
val set = Set("foo", "bar", ...)
val res = Option.when(config.view.filterKeys(set).size == set.size)
( fun(config("foo"), config("bar"), config(...), ...) )
Оба подхода выглядят уродливо и неэффективно. Есть ли более краткий способ реализовать то же поведение?