我根据教科书做,但有一个错误
恐慌:分配到零地图中的条目(在行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
,但效果相同
答案 0 :(得分:4)
您必须先初始化地图:
keyval := make(map[string]int)
根据this博文:
地图类型是引用类型,如指针或切片,等等 m以上的值为零;它没有指向初始化的地图。
GoPlay:
https://play.golang.org/p/2JuPS1J7KK
编辑以回答OP的后续行动。如果您希望将切片中的字符串用作地图的关键字,则需要进行其他更改:
keyval[x[i]] = 0