gpt4 book ai didi

maps - 如何在 Kotlin 中使用 map

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

下面的代码创建了一个名为 nameTable 的新映射,然后向其中添加一个名为 example 的条目,然后尝试打印 Value 的 name 属性。

当我运行它时,似乎加号操作并没有像我想象的那样向 map 添加新条目。

那我做错了什么?

class Person(name1: String, lastName1: String, age1: Int){
var name: String = name1
var lastName: String = lastName1
var age: Int = age1
}

var nameTable: MutableMap<String, Person> = mutableMapOf()
var example = Person("Josh", "Cohen", 24)

fun main (args: Array<String>){
nameTable.plus(Pair("person1", example))
for(entry in nameTable){
println(entry.value.age)
}
}

虽然我们在做这件事,但我希望有一些示例来说明如何从 map 中添加、删除和获取条目。

最佳答案

您感到困惑的原因是 plusnot 变异运算符,这意味着它适用于(只读)Map,但不会更改实例本身。这是签名:

operator fun <K, V> Map<out K, V>.plus(pair: Pair<K, V>): Map<K, V>

你想要的是一个变异操作符set,定义在MutableMap上:

operator fun <K, V> MutableMap<K, V>.set(key: K, value: V)

因此您的代码可能会被重写(带有一些额外的增强功能):

class Person(var name: String, var lastName: String, var age: Int)

val nameTable = mutableMapOf<String, Person>()
val example = Person("Josh", "Cohen", 24)

fun main (args: Array<String>) {
nameTable["person1"] = example

for((key, value) in nameTable){
println(value.age)
}
}

关于maps - 如何在 Kotlin 中使用 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37464679/

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