Conversion de structure dans Go
Considérez les deux structures suivantes :
type A struct { a int b string } type B struct { A c string }
Supposons que vous ayez une variable de type A et que vous souhaitiez la 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 }
Cette approche crée une nouvelle instance de B qui contient les données de A dans son champ incorporé.
Méthode 2 : Copie manuelle des champs
Alternativement, vous pouvez 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", } }
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 peut être utile si vous disposez d'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.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3