2015-07-29 1 views
0

Dans la FAQ officielle de golang.org, under pointers il y a cette citation: "L'idée est que bien qu'un pointeur vers un type concret puisse satisfaire une interface, avec un exception un pointeur sur une interface ne peut jamais satisfaire une interface "golang exception à la règle "pointeur d'interface ne peut pas implémenter l'interface"

Par curiosité, quelle est cette exception à la règle ci-dessus? Par exemple, quand un pointeur d'interface peut-il implémenter une interface?

Répondre

1

juste en dessous dit:

La seule exception est que toute valeur, même un pointeur vers une interface, peut être affecté à une variable de type d'interface vide (interface {}). Même ainsi, il est presque certainement une erreur si la valeur est un pointeur vers une interface; le résultat peut être déroutant.

+1

Vous avez raison, je viens de le tester et il fonctionne bien. Merci principale func() { \t interface de type I {} \t f: = func (interface p {}) {fmt.Println ("des courses")} \t var i I = 1 \t f (& i) } –