Swift字典操作map[x]!.append(product)作用说明及Kotlin实现问询
解答
Swift语句map[x]!.append(product)的作用
你给出的map是键为String类型、值为可变字符串数组[String]类型的可变字典,这条语句的具体行为如下:
- 第一步通过键
x从字典中查询对应的字符串数组值 - 后缀
!是强制解包操作,代表你默认x一定在字典中存在对应非空值,如果x对应的键不存在,会直接触发运行时崩溃 - 最后调用
append方法,把字符串变量product追加到取出的数组末尾
对应Kotlin实现写法
Kotlin中同类型的字典定义为MutableMap<String, MutableList<String>>,可以根据场景选择两种实现:
- 和原Swift语句行为完全对齐(强制要求键必须存在,不存在直接抛出空指针异常)的写法:
map[x]!!.add(product)
这里的!!等价于Swift的强制解包!,add方法等价于Swift的append方法。
2. 更安全的通用写法(键不存在时自动初始化空列表,避免崩溃):
map.getOrPut(x) { mutableListOf() }.add(product)
getOrPut方法会在键x不存在时,自动执行Lambda创建空可变列表存入字典,再返回对应的列表对象,无需手动判空处理。
内容的提问来源于stack exchange,提问作者CodeThisAndThat
相关产品推荐
相关产品推荐

