#java #kotlin
#java #kotlin
Вопрос:
Давайте предположим, что у нас есть карта:
val charToCount = mapOf('a', 3)
Задача состоит в том, чтобы получить значение 3
с помощью соответствующего ключа. Проблема в том, что map.get(...)
возвращает обнуляемый тип T?
вместо T
. Как лучше всего преобразовать значение в ненулевой тип, если есть гарантия, что ключ присутствует на карте и соответствующее значение != null
?
У меня в голове есть два способа:
val count = charToCount['a']!!
val count = charToCount['a'] ?: error("...")
Но оба они не кажутся краткими. Существуют ли какие-либо лучшие подходы к удалению с помощью nullable type?
Ответ №1:
Соответствующий метод
val count: Int = charToCount.getValue('a')
…который «выдает исключение, если на карте нет такого ключа», согласно его документам.
Извините, если вы надеялись на что-то более краткое; если вы хотите что-то короткое, вы не сможете превзойти !!
.