kotlin - Kotlin:Map.get(key) 与 Map.getValue(key)
问题描述
我someMap.get(someKey)
在我的代码中使用,这给了我一个错误说Please use !! or ?
. 当我使用someMap.getValue(someKey)
时,该错误消失了。
有人能解释一下为什么我们在课堂上有两个看起来相似(但奇怪不同)get
的函数Map
吗?
更新
我想这与异常有关,getValue
抛出异常。但是 Kotlin 没有任何异常抛出是真的吗?
解决方案
在 Kotlin 中,它们为Map
. get(key)
如果存在则返回该值,如果不存在则返回null
,因此是可为空的类型。getValue(key)
要么返回键的值,要么Exception
在键不存在时抛出:https ://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/get-value.html
如果您确定您的地图将包含密钥,则可以避免使用可为空的变体并使用getValue()
; 如果您不知道地图包含什么,请使用get()
.
推荐阅读
- java - SortedSet 的元素类型允许计算给定值的后继值
- sql - 以正确顺序进行 SQL 查询
- php - laravel如何在item和category表的关系上显示一个category的item
- http - http 上的soap 和xml 之间的区别?
- email - 如何在特定文件夹中启动 Windows 10 Mail 应用程序?
- c# - Entity Framework Core 2 一对一关系“在一张桌子上”
- reactjs - 为什么 React Router 历史推送有时无法渲染新组件?
- r - 正确地将“data.frame”转换为“事务”的规则
- node.js - 如何使用 multer 访问数字海洋空间上的文件
- python - 解码 CSV 文件中的 UTF8 文字