Fragmento de código
val map = mutableMapOf<String, String>() map.computeIfAbsent(key) { calcValue(it) } con la firma calcValue :
fun calcValue(key: String): String?compila con error:
Tipo no coincidente: ¿el tipo inferido es String? pero se esperaba String
Pero es aceptable que mappingFunction devuelva null en Map.computeIfAbsent .
¿Es esto un error? ¿O estoy haciendo algo mal?
Aparentemente, el equipo de kotlin no permitió explícitamente esto para simplificar el uso. Consulte la explicación aquí: https://youtrack.jetbrains.com/issue/KT-10982#focus=streamItem-27-2187715.0-0
Entonces, use compute o use un tipo que acepta valores NULL como valor en el mapa.