Убедить Котлина в карте компилятора есть ключ - PullRequest
0 голосов
/ 09 июня 2019

Есть ли способ сообщить компилятору Kotlin, что мы гарантируем, что карта содержит ключ?

В примере:

val dummyMap = mapOf (
    1 to 2,
    2 to 3
)

...

someByteArray[some index] = dummyMap[some value that can be only 1 or 2]

Компилятор будет жаловаться, что dummyMap возвращает значение, которое может быть null.

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

1 Ответ

2 голосов
/ 09 июня 2019

Kotlin Collections уже определяет функцию расширения Map.getValue() , которая возвращает элемент с ненулевым типом или выдает NoSuchElementException.

Теперь это нормально скомпилируется:

someByteArray[some index] = dummyMap.getValue(1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...