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.
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