Using reflection, we can get the type name, storage size and the function of the given type(such as uint64, user-defined struct and so on). Even, we can modify some fields of the given type. How does golang implement reflections? I guess the following ways:
-
Every type in golang, including user-defined type, itself has the information about type name, fields name and the function name. Golang reflection just reads these information or call the function.
-
Through some mechanism, Golang can get the type name, storage size and so on. And the type itself doesn’t have these information.
I have read the golang reflection code roughly. I guessed that golang used the second way. Who can describe the concrete implement of reflection? Or recommend me some documents? Reading all code is difficult for me.
Aucun commentaire:
Enregistrer un commentaire