Maison  >  Article  >  développement back-end  >  Comment convertir entre des structures Go avec différents champs ?

Comment convertir entre des structures Go avec différents champs ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-28 04:14:02813parcourir

 How to Convert Between Go Structs with Different Fields?

Conversion de structure dans Go

Q : J'ai deux structures avec des champs différents. Comment puis-je convertir une variable de type A en type B, où A contient uniquement des champs essentiels et B contient des champs supplémentaires ? Est-il possible d'effectuer cette conversion directement ou dois-je copier manuellement les champs ?

R : Dans Go, la conversion de structure peut être effectuée en tirant parti de la fonctionnalité d'intégration. Cela vous permet d'imbriquer les champs d'une structure dans une autre. Par exemple, dans votre cas, vous avez une structure A avec deux champs (a et b) et une structure B qui intègre la structure A et ajoute des champs supplémentaires (c et potentiellement plus).

Pour convertir à partir de A à B, vous pouvez simplement créer une structure B et y intégrer une instance de A :

<code class="go">type A struct {
    a int
    b string
}

type B struct {
    A
    c string
}

func main() {
    // create structA of type A
    structA := A{a: 42, b: "foo"}

    // convert to type B
    structB := B{A: structA}

    // access the fields of structB
    fmt.Println(structB.a, structB.b, structB.c) // Output: 42 foo (additional value)
}</code>

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