Kotlin 从地图中通过键获取值

fbo*_*kov 0 java kotlin

假设我们有一张地图:

val charToCount = mapOf('a', 3)
Run Code Online (Sandbox Code Playgroud)

任务是3通过相应的键检索值。问题是map.get(...)返回可空类型T?而不是T. 如果可以保证映射中存在键和相应的值,那么将值转换为不可为空类型的最佳实践是!= null什么?

在我的头顶有两种方法:

  1. val count = charToCount['a']!!
  2. val count = charToCount['a'] ?: error("...")

但两者似乎都不简洁。有没有更好的方法来消除可空类型?

Lou*_*man 6

合适的方法是

val count: Int = charToCount.getValue('a')
Run Code Online (Sandbox Code Playgroud)

...根据其文档,“如果地图中没有这样的键,则会引发异常”。

对不起,如果你希望更简洁;如果你想要一些简短的东西,你不可能打败!!