Maison >développement back-end >Golang >Comment accéder aux valeurs de structure anonymes dans une « interface{} » dans Golang ?

Comment accéder aux valeurs de structure anonymes dans une « interface{} » dans Golang ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-04 04:17:29357parcourir

How to Access Anonymous Struct Values Within an `interface{}` in 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn