2017-06-06 2 views
0

De the documentation for reflect.Value.Pointer():Comment les valeurs de fonction ('pointeurs de fonction') sont-elles implémentées dans Go?

Si v Kind est Func, le pointeur renvoyé est un pointeur de code sous-jacent, mais pas nécessairement suffisant pour identifier une seule fonction unique. La seule garantie est que le résultat est nul si et seulement si v est une valeur de fonction nulle.

Il semble clair que les variables à valeur fonctionnelle doivent contenir plus qu'un simple pointeur de code. Étant donné que Go prend en charge les pointeurs de méthode, cela n'est guère surprenant - mais quelle est la véritable implémentation sous-jacente?

(Et comment est-il différent, le cas échéant, pour les valeurs de fonction créées à l'aide de réflexion? Voir le commentaire in the source for Value.Pointer().)

Répondre

1

La section « Nouvelle mise en œuvre » de the design document décrit comment les pointeurs de fonction sont représentés.