使用反射,我们可以获取给定类型(如uint64,用户自定义结构等)的类型名称、存储大小和函数。甚至可以修改给定类型的某些字段。 Golang如何实现反射?我猜想以下两种方法:
Golang中的每种类型,包括用户自定义类型,都有有关类型名称、字段名称和函数名称的信息。Golang反射只读取这些信息或调用函数。
通过某些机制,Golang可以获取类型名称、存储大小等信息。而类型本身并没有这些信息。
我大致阅读了Golang的反射代码。我猜测Golang使用了第二种方法。 谁能描述反射的具体实现方式?或者推荐一些文档?对我来说,阅读所有代码很困难。