Maison > développement back-end > Golang > Comment initialiser correctement les champs de carte dans Go Structs ?

Comment initialiser correctement les champs de carte dans Go Structs ?

DDD
Libérer: 2024-12-02 16:47:11
original
503 Les gens l'ont consulté

How to Properly Initialize Map Fields in Go Structs?

Initialisation des champs de structure avec des cartes dans Go

Lors de l'initialisation d'une structure contenant un champ de carte, il est important de s'assurer que la carte est initialisé pour éviter les erreurs de pointeur nulles. Une approche consiste à créer une fonction constructeur qui initialise explicitement la carte, telle que :

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

func NewGraph() *Graph {
    var g Graph
    g.connections = make(map[Vertex][]Vertex)
    return &g
}
Copier après la connexion

Une autre option consiste à utiliser une méthode "ajouter une connexion" qui initialise la carte si elle est vide :

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)
}
Copier après la connexion

Certains préfèrent utiliser des constructeurs en raison de leur clarté et de leur facilité d'utilisation, tandis que d'autres privilégient la méthode « ajouter une connexion » pour sa flexibilité et ses avantages potentiels en termes de performances. En fin de compte, la meilleure approche dépend des exigences spécifiques de l'application.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal