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

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

DDD
Libérer: 2024-12-05 10:07:15
original
381 Les gens l'ont consulté

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

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

L'attribution d'une tranche de structures à une tranche d'interfaces vides n'est pas simple en raison du type incompatibilité, comme le montre le code suivant :

type MyStruct struct {
    // ...
}

var src []*MyStruct
var dest []interface{}
dest = src  // Compilation error
Copier après la connexion

Cette erreur survient car le compilateur identifie les deux types comme incompatibles. Pour résoudre ce problème, il faut copier chaque élément manuellement :

for _, s := range src {
    dest = append(dest, s)
}
Copier après la connexion

Malgré la fastidité de copier les éléments un par un, cela est nécessaire car le cast d'une structure vers une interface implique d'envelopper la structure dans un pointeur d'interface et de taper descripteur. Copier chaque élément séparément garantit que ce processus d'emballage est effectué correctement.

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