Die*_*rin 1 hashmap kotlin kotlin-null-safety
在 Kotlin 中,可以对 Map 使用方括号表示法,因此以下代码:
val mapOfMap: Map<String, Map<String, String>> = mapOf("Key1" to mapOf("Subkey1" to "Value1", "Subkey2" to "Value2"))
println(mapOfMap["Key1"])
Run Code Online (Sandbox Code Playgroud)
印刷:
{Subkey1=Value1, Subkey2=Value2}
Run Code Online (Sandbox Code Playgroud)
那太棒了。但为什么我不能执行以下操作
println(mapOfMap["Key1"]["Subkey1"])
Run Code Online (Sandbox Code Playgroud)
它会导致编译错误:在 Map 类型的可空接收器上只允许安全 (?.) 或非空断言 (!!.) 调用?
处理这个问题的正确方法是什么?
因为mapOfMap["Key1"]可能返回 null,因为它无法猜测所需的键是否在映射中。这和调用是一样的mapOfMap.get("Key1")。第二个映射可以为空,因此它不能调用另一个.get()映射。你可以这样做:mapOfMap["Key1"]?.get("Subkey1")
| 归档时间: |
|
| 查看次数: |
1792 次 |
| 最近记录: |