Maison > développement back-end > Golang > Comment convertir une structure en Go : intégration, copie manuelle ou conversion explicite ?

Comment convertir une structure en Go : intégration, copie manuelle ou conversion explicite ?

Susan Sarandon
Libérer: 2024-10-29 01:40:02
original
762 Les gens l'ont consulté

How to Convert a Struct in Go: Embedding, Manual Copying, or Explicit Conversion?

Conversion de structure dans Go

Considérez les deux structures suivantes :

type A struct {
    a int
    b string
}

type B struct {
    A
    c string
}
Copier après la connexion

Supposons que vous ayez une variable de type A et souhaitez le convertir en type B. Est-ce possible dans Go, ou devez-vous copier manuellement les champs ou créer une méthode de conversion explicite ?

Méthode 1 : affectation de structure intégrée

Comme vous l'avez mentionné dans votre question, l'intégration peut être utilisée à cette fin. En incorporant A dans B, vous pouvez convertir une variable de type A en type B simplement en l'attribuant au champ intégré. Par exemple :

func main() {
    structA := A{a: 42, b: "foo"}
    structB := B{A: structA} // Embed structA into structB
}
Copier après la connexion

Cette approche crée une nouvelle instance de B qui contient les données de A dans son champ intégré.

Méthode 2 : copie manuelle des champs

Vous pouvez également copier manuellement les champs de A vers B comme suit :

func main() {
    structA := A{a: 42, b: "foo"}
    structB := B{
        A: structA, // Copy fields from structA
        c: "bar",
    }
}
Copier après la connexion

Cette méthode consiste à créer une nouvelle instance de B et à attribuer manuellement les champs de A.

Méthode 3 : Méthode de conversion explicite

Une autre option consiste à créer une méthode de conversion explicite qui convertit A en B. Cela pourrait être utile si vous avez une logique de conversion complexe. Cependant, cette approche n'est pas nécessaire dans ce cas, car les méthodes ci-dessus constituent un moyen simple d'obtenir la conversion souhaitée.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal