Maison > développement back-end > Golang > Comment convertir une tranche de structures en une tranche d'interfaces vides dans Go ?

Comment convertir une tranche de structures en une tranche d'interfaces vides dans Go ?

Patricia Arquette
Libérer: 2024-12-10 13:07:10
original
316 Les gens l'ont consulté

How to Convert a Slice of Structs to a Slice of Empty Interfaces in Go?

Conversion d'une tranche de structures en tranche d'interface vide

Lors de la transmission de données à la fonction datastore.PutMulti d'AppEngine, cela nécessite une tranche d'[]interface{}. Cependant, cela peut entraîner des erreurs de compilation si vous tentez d'attribuer une tranche de structures, []*MyStruct, à la tranche []interface{}.

L'erreur survient car le compilateur Go considère ces deux types comme incompatibles. , ce qui entraîne l'échec de l'attribution de src à dest.

Solution

Malheureusement, il n'existe aucun moyen direct de copier une tranche de structure dans une tranche d'interface vide sans copier chaque élément individuellement. En effet, la conversion d'une structure vers une interface crée une version encapsulée de la structure. Une interface contient un pointeur vers le type d'origine et un descripteur pour le type lui-même. Par conséquent, pour envelopper correctement chaque structure, vous devez les copier une par une.

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