kotlin - 使用“when in”证明了地图访问的智能转换
问题描述
我正在尝试使用 Kotlin 的when
块在不同的地图中查找元素。在确认元素存在后,代码随后不会将映射中的结果查找智能转换为不为空。
下面是一个最小的工作示例:是否可以对其进行!!
不需要的返工?
fun main(args: Array<String>) {
val string = "abc"
val map1 = mapOf('a' to 5)
val map2 = mapOf('b' to 4)
when (val char = string.firstOrNull()) {
null -> println("Nothing to find")
in map1 -> println("Found in map1: ${map1[char]!!+1}")
in map2 -> println("Found in map2: ${map2[char]!!-1}")
else -> println("Unrecognised character $char")
}
}
解决方案
推荐阅读
- jquery - 在 WP 中选择更改时更改 YouTube iFrame 源
- node.js - 检测用户是否在 Apache 或 NodeJS 中使用 proxypass
- spring-security - 过滤器无法访问的 Spring Security Endpoints
- sql - 按组的第一个值对值进行分组
- sql-server-2012 - 创建用于连接到 excel 文件的链接服务器
- c++ - 查找作为 C++ 类元素的 2D 向量的位置
- c++ - 根据模板参数生成不同大小的初始化列表
- firebase - Firebase 中的 WCF 服务
- doxygen - Doxygen - 如何从文档中隐藏变量
- ios - google Speech API for iOS 词汇不足训练集