Maison >développement back-end >Golang >Pourquoi utiliser le soulignement des champs de structure vides pour l'initialisation par clé dans Go ?

Pourquoi utiliser le soulignement des champs de structure vides pour l'initialisation par clé dans Go ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-09 03:58:10503parcourir

Why Use Underscore Empty Struct Fields for Keyed Initialization in Go?

Objectif du soulignement des champs de structure vides

Dans Go, il est possible de définir des structures avec un champ nommé "_" contenant une structure vide. Cet idiome applique l'initialisation des champs à clé, où chaque champ doit être explicitement nommé lors de la création d'une instance de la structure.

Exemple de code

type SomeType struct {
  Field1 string
  Field2 bool
  _      struct{}
}

Champ à clé Initialisation

Avec ce champ struct vide, la struct doit être déclarée à l'aide de keyed champs :

// ALLOWED:
bar := SomeType{Field1: "hello", Field2: true}

// COMPILE ERROR:
foo := SomeType{"hello", true}

Avantages

Cette technique présente plusieurs avantages :

  • Application des champs saisis : Cela évite l'affectation accidentelle de champs par position, pouvant conduire à erreurs.
  • Épreuve évolutive : Les champs de structure vides permettent d'ajouter de nouveaux champs à la structure à l'avenir sans affecter le code existant. Cela maintient la compatibilité ascendante et garantit que le code faisant référence aux champs saisis continuera à fonctionner correctement.

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!

Déclaration:
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