Умный состав карт доступа, проверенный с помощью «когда в» - PullRequest
1 голос
/ 16 мая 2019

Я пытаюсь использовать блок when Котлина для поиска элемента на разных картах.После подтверждения того, что элемент существует, код впоследствии не выполняет интеллектуальное приведение результирующего поиска на карте к ненулевому.

Ниже приведен минимальный рабочий пример: можно ли его переработать так, чтобы !! не былонужно?

fun main(args: Array<String>) {
    val string = "abc"
    val map1 = mapOf('a' to 5)
    val map2 = mapOf('b' to 4)
    when (val char = string.firstOrNull()) {
        null -> println("Nothing to find")
        in map1 -> println("Found in map1: ${map1[char]!!+1}")
        in map2 -> println("Found in map2: ${map2[char]!!-1}")
        else -> println("Unrecognised character $char")
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...