gpt4 book ai didi

arrays - Go语言中的结构体数组

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

我是 Go 的新手,想在 Go 中创建和初始化一个结构数组。我的代码是这样的

type node struct {
name string
children map[string]int
}

cities:= []node{node{}}
for i := 0; i<47 ;i++ {
cities[i].name=strconv.Itoa(i)
cities[i].children=make(map[string]int)
}

我收到以下错误:

panic: runtime error: index out of range

goroutine 1 [running]:
panic(0xa6800, 0xc42000a080)

请帮忙。 TIA:)

最佳答案

您将城市初始化为具有一个元素(空节点)的节点 slice 。

您可以使用 cities := make([]node,47) 将其初始化为固定大小,或者您可以将其初始化为空 slice ,然后 append对它:

cities := []node{}
for i := 0; i<47 ;i++ {
n := node{name: strconv.Itoa(i), children: map[string]int{}}
cities = append(cities,n)
}

我绝对推荐阅读 this article如果您对 slice 的工作方式不太了解。

关于arrays - Go语言中的结构体数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40229880/

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