Kotlin通过地图从钥匙中获得价值

时间:2020-08-27 23:01:32

标签: java kotlin

假设我们有一张地图:

val charToCount = mapOf('a', 3)

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

有两种方法可以解决问题:

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

但是它们看起来都不简洁。有没有更好的方法来消除可空类型?

1 个答案:

答案 0 :(得分:6)

合适的方法是

val count: Int = charToCount.getValue('a')

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

很抱歉,如果您希望获得更简洁的信息;如果您想要某件 short ,则不可能击败!!