Maison >développement back-end >Golang >Comment puis-je convertir un pointeur Struct vers une interface {} et revenir en Go ?
Casting d'un pointeur Struct vers une interface
Étant donné que la struct foo et la barre de fonctions ont des définitions inflexibles, cette question cherche une solution à convertir un pointeur en foo en une interface{} à utiliser comme paramètre dans bar. De plus, la reconversion en pointeur de structure foo dans bar est nécessaire.
Conversion en interface{}
Pour convertir &foo{} en interface{}, le Le processus est simple :
f := &foo{} bar(f) // Every type implements interface{}.
Conversion Retour à *foo
Pour récupérer le *foo original depuis l'interface{}, deux méthodes sont disponibles :
Assertion de type
func bar(baz interface{}) { f, ok := baz.(*foo) if !ok { // baz was not of type *foo. The assertion failed. } // f is of type *foo }
Commutateur de type
func bar(baz interface{}) { switch f := baz.(type) { case *foo: // f is of type *foo default: // f is some other type } }
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!