"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment convertir les tranches de structure en tranches d'interface vides dans le langage Go?

Comment convertir les tranches de structure en tranches d'interface vides dans le langage Go?

Publié le 2025-04-19
Parcourir:996

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

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

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

type MyStruct struct {
    // ...
}

var src []*MyStruct
var dest []interface{}
dest = src  // Compilation error

Cette erreur surgit parce que 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)
}

Malgré la tolérance de la copie des éléments un par un, il est nécessaire parce que le casting d'une structure à une interface implique l'enveloppe de la structure dans un pointeur d'interface et le descripteur de type. La copie de chaque élément assure séparément que ce processus d'enveloppe est effectué correctement.

Dernier tutoriel Plus>

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