Maison >développement back-end >Golang >Comment utiliser la réflexion de type d'exécution pour convertir les types ?

Comment utiliser la réflexion de type d'exécution pour convertir les types ?

王林
王林avant
2024-02-06 10:51:12681parcourir

Comment utiliser la réflexion de type dexécution pour convertir les types ?

Contenu de la question

J'essaie de créer une fonction en utilisant des génériques qui convertit une tranche d'interface en une tranche de type t.

J'ai trouvé ce qui suit :

func convertInterfaceArray[T any](input []any, res []T) {
    for _, item := range input {
        res = append(res, item.(reflect.TypeOf(res[0])))
    }
}

Cependant, cela ne sera pas compilé. Mais vous comprenez. t peut être de n'importe quel type, j'ai une tranche d'entrée de type []any qui doit être convertie en []t


Réponse correcte


Assertez la valeur de type t. Aucune réflexion requise.

for _, item := range input {
    res = append(res, item.(T))
}

https://www.php.cn/link/f2a13eeae490ef805070086405e26087

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer
Article précédent:Comment combiner cobra et klogArticle suivant:Comment combiner cobra et klog