gpt4 book ai didi

go - 如何在循环中创建 map 键?

转载 作者:IT王子 更新时间:2023-10-29 02:29:15 25 4
gpt4 key购买 nike

我是按照课本做的,但是有错误

panic :分配给 nil 映射中的条目(在 keyval["{x[i]}"] = 0 行中)

package main
import "fmt"

func main() {
x := [3]string{"aa","bb","cc"}

var keyval map[string]int

for i := 0; i < len(x); i++ {
keyval["{x[i]}"] = 0
}

fmt.Println(keyval)
}

我尝试使用 keyval["x[i]"] = 0 但效果是一样的

最佳答案

您必须首先初始化您的 map :

keyval := make(map[string]int)

根据 this博文:

Map types are reference types, like pointers or slices, and so the value of m above is nil; it doesn't point to an initialized map.

在这里玩:
https://play.golang.org/p/2JuPS1J7KK

编辑以回答 OP 的跟进。如果您希望使用 slice 中的字符串作为映射的键,则需要进行额外的更改:

keyval[x[i]] = 0

在这里玩:
https://play.golang.org/p/feMSwvbEGS

关于go - 如何在循环中创建 map 键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44723188/

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