Kotlin: Map.get (ключ) против Map.getValue (ключ) - PullRequest
0 голосов
/ 28 апреля 2020

Я использовал someMap.get(someKey) в своем коде, который дал мне сообщение об ошибке Please use !! or ?. Когда я использовал someMap.getValue(someKey), эта ошибка исчезла.

Может кто-нибудь объяснить, почему у нас есть 2 внешне похожие (но странно разные) функции get в классе Map?

ОБНОВЛЕНИЕ

Я думаю, это связано с исключением, что getValue выдает исключение. Но не правда ли, что Kotlin не имеет исключений?

1 Ответ

1 голос
/ 28 апреля 2020

В Kotlin они предоставляют оба метода для Map. get(key) возвращает значение, если оно существует, или возвращает null, если оно не существует, следовательно, имеет тип NULL. getValue(key) либо возвращает значение ключа, либо выдает Exception, если ключ не существует: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/get-value.html

Если вы уверены, что ваша карта будет содержать ключ, вы можете избежать использования обнуляемого варианта и использовать getValue(); если вы не знаете, что содержит карта, используйте get().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...