首页 >后端开发 >Golang >如何正确初始化 Go 结构中的映射字段?

如何正确初始化 Go 结构中的映射字段?

DDD
DDD原创
2024-12-02 16:47:11503浏览

How to Properly Initialize Map Fields in Go Structs?

Go 中使用 Map 初始化结构体字段

初始化包含 Map 字段的结构体时,重要的是要确保 Map 是初始化以避免零指针错误。一种方法是创建一个显式初始化映射的构造函数,例如:

type Graph struct {
  connections map[Vertex][]Vertex
} 

func NewGraph() *Graph {
    var g Graph
    g.connections = make(map[Vertex][]Vertex)
    return &g
}

另一种方法是使用“添加连接”方法,如果映射为空,则初始化该映射:

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)
}

有些人更喜欢使用构造函数,因为它们的清晰性和易用性,而另一些人则喜欢“添加连接”方法,因为它的灵活性和潜在的性能优势。最终,最佳方法取决于应用程序的具体要求。

以上是如何正确初始化 Go 结构中的映射字段?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn