Maison >développement back-end >Golang >Comment accéder aux valeurs de structure anonymes dans une « interface{} » dans Golang ?
Accès aux valeurs de structure anonymes dans l'interface de type Golang {}
Vous rencontrez un problème pour accéder à la structure anonyme que vous avez transmise à la fonction NewJob à partir de la fonction Personnalisée. L'erreur que vous rencontrez, "interface {} est une interface sans méthodes", indique que le type d'interface {} avec lequel vous travaillez n'a pas de méthodes définies, ce qui rend impossible l'accès direct aux champs.
Pour pour résoudre ce problème, vous devez saisir la valeur assert the interface{} sur un type compatible, tel que la structure anonyme à laquelle appartiennent vos données. Cela vous permet d'accéder au champ que vous désirez. Voici le code ajusté :
<code class="go">func Custom(name string) interface{} { for i := range jobs { if jobs[i].name != name { continue } return jobs[i].custom } return nil } ... id := t.(struct{Id int}).Id</code>
Dans le code ci-dessus, nous tapons assert t dans une structure avec un champ nommé Id. Cela nous permet d'accéder directement au champ Id, renvoyant désormais le résultat attendu de 1.
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!