Maison >développement back-end >Golang >Comment convertir entre des structures Go avec des structures intégrées ?

Comment convertir entre des structures Go avec des structures intégrées ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-27 08:36:02452parcourir

How to Convert Between Go Structs with Embedded Structures?

Conversion entre les structures Go

Dans Go, les structures offrent un moyen pratique d'organiser et de représenter les données. Cependant, une conversion entre des structures de types différents peut parfois être nécessaire. Considérons le scénario suivant :

Vous disposez de deux structures, A et B, où A ne contient que quelques champs essentiels, tandis que B contient des champs supplémentaires et hérite de tous les champs de A. Vous souhaitez convertir une variable de type A. dans le type B sans copier manuellement les valeurs.

Solution

Go fournit un moyen simple de réaliser ce type de conversion :

<code class="go">package main

type A struct {
    a int
    b string
}

type B struct {
    A
    c string
    // Additional fields
}

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

    // Convert structA to type B using embedded struct
    structB := B{A: structA}
}</code>

Dans Dans cet exemple, la structure B intègre une instance de A en utilisant son champ anonyme. Lors de la conversion de structA en structB, les champs de structA sont automatiquement attribués aux champs correspondants dans structB, y compris le champ c qui n'était pas présent dans A. Cela vous permet de construire sans effort une structure B complète à partir d'une variable A existante.

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