首页 > 解决方案 > Kotlin:Map.get(key) 与 Map.getValue(key)

问题描述

someMap.get(someKey)在我的代码中使用,这给了我一个错误说Please use !! or ?. 当我使用someMap.getValue(someKey)时,该错误消失了。

有人能解释一下为什么我们在课堂上有两个看起来相似(但奇怪不同)get的函数Map吗?

更新

我想这与异常有关,getValue抛出异常。但是 Kotlin 没有任何异常抛出是真的吗?

标签: kotlin

解决方案


在 Kotlin 中,它们为Map. get(key)如果存在则返回该值,如果不存在则返回null,因此是可为空的类型。getValue(key)要么返回键的值,要么Exception在键不存在时抛出:https ://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/get-value.html

如果您确定您的地图将包含密钥,则可以避免使用可为空的变体并使用getValue(); 如果您不知道地图包含什么,请使用get().


推荐阅读