gpt4 book ai didi

arrays - Kotlin 基础知识 : how to add or set an element of a Map?

转载 作者:IT老高 更新时间:2023-10-28 13:37:09 25 4
gpt4 key购买 nike

我想添加/设置具有特定键值对的可变映射的元素。到目前为止,我发现我可以使用加号运算符和 Pair 数据类型添加新元素:

var arr3:Map<Any, Any> = mutableMapOf()
arr3 += Pair("manufacturer", "Weyland-Yutani")
//also, the "to" operator works too:
//arr3 += ("manufacturer" to "Weyland-Yutani")

但是,我不知道如何修改或添加新的键值对:

arr3["manufacturer"] = "Seegson"  // gives an error( Kotlin: No set method providing array access)
arr3["manufacturer"] to "Seegson" // compiles, but nothing is added to the array

能否请您详细说明一下如何做到这一点?

最佳答案

您已声明可变 arr3显式类型为 Map<Any, Any> . Map ) 接口(interface)不允许突变。 +=运算符创建一个新的 map 实例并改变变量 arr3 .要修改 map 的内容,请声明 arr3 MutableMap 像这样:

var arr3:MutableMap<Any, Any> = mutableMapOf()

或更多地道

var arr = mutableMapOf<Any, Any>()

请注意,通常您需要可变变量 var或可变实例类型 MutableMap但根据我的经验,很少两者兼而有之。

换句话说,您可以使用具有不可变类型的可变变量:

var arr = mapOf<Any,Any>()

并使用 +=运算符修改位置 arr指着。

或者您可以使用 MutableMap不可变 arr变量和修改 where arr 的内容指向:

val arr = mutableMapOf<Any,Any>()

显然你只能修改MutableMap内容。所以arr["manufacturer"] = "Seegson"仅适用于声明为这样的变量。

关于arrays - Kotlin 基础知识 : how to add or set an element of a Map?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42627103/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com