为了账号安全,请及时绑定邮箱和手机立即绑定

golang - 如何在结构中初始化地图字段?

golang - 如何在结构中初始化地图字段?

Go
慕后森 2021-09-10 10:41:44
我对初始化包含地图的结构的最佳方法感到困惑。运行此代码会产生panic: runtime error: assignment to entry in nil map:package maintype Vertex struct {   label string} type Graph struct {  connections map[Vertex][]Vertex} func main() {  v1 := Vertex{"v1"}  v2 := Vertex{"v2"}  g := new(Graph)  g.connections[v1] = append(g.coonections[v1], v2)  g.connections[v2] = append(g.connections[v2], v1)}一个想法是创建一个构造函数,如本答案所示。另一个想法是使用一种add_connection可以在地图为空时初始化地图的方法:func (g *Graph) add_connection(v1, v2 Vertex) {  if g.connections == nil {    g.connections = make(map[Vertex][]Vertex)  }  g.connections[v1] = append(g.connections[v1], v2)  g.connections[v2] = append(g.connections[v2], v1)}还有其他选择吗?只是想看看是否有一种普遍接受的方法来做到这一点。
查看完整描述

3 回答

?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

代码(尤其是完全在您控制之下的代码)假设您正确初始化了数据结构是很常见的。在这种情况下通常使用结构文字


g := &Graph{

    connections: make(map[Vertex][]Vertex),

}


查看完整回答
反对 回复 2021-09-10
  • 3 回答
  • 0 关注
  • 202 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信