на несоответствие типов, а приводит все к общему типу, в данном случае Any?
val map = mapOf<Int, String>()
map.getOrElse(1) { mapOf(1 to 1) }
Наверное, потому, что он в такой ситуации выводит тип map как Map<Int, Any>, т.к. он не указан явно. Т.е. использование локальной переменной может повлиять на её выведенный тип.
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/get-or-else.html inline fun <K, V> Map<K, V>.getOrElse( key: K, defaultValue: () -> V ): V Лямбда же должна возвращать String в этом случае, а не Map.
Обсуждают сегодня