当前位置: 首页 > 网络应用技术

go语言|使用反射反射以获取接口变量信息

时间:2023-03-06 20:31:57 网络应用技术

  反射是通过物理对象获得反射对象(值,类型),然后操作相应的方法。在某些情况下,我们可能不知道变量的特定类型。目前,我们可以使用反射来获得此变量的类型或方法。

  实际上,反射的操作步骤非常简单,也就是说,通过物理对象获得反射对象(值,键入),然后操作相应的方法。

  下图描述了实例,价值和类型之间的转换关系:

  反射API的分类摘要如下:

  通过实例获取值对象,并直接使用reflect.valueof()函数。例如:

  通过实例获取反射对象的类型,并直接使用Reflect.Typeof()函数。例如:

  类型中只有类型信息,因此无法直接从类型接口变量获得实例的值,但是您可以通过类型构建新的实例值。反射软件包提供了两种方法,该示例如下:

  如果您知道一种值类型的基础地址,则可以根据类型和地址值报告另一个函数。例如:

  从反射对象值到type,可以直接调用值方法,因为类型类型的值存储在值中。例如:

  价值本身包含类型和价值信息,并且反思提供了丰富的方法,以实现从价值到实例的转换。例如:

  有两种方法可以从指针类型值获得值类型值。示例如下。

  POINAGE类型类型到值类型类型。例如:

  值类型到指针类型类型。例如:

  值的修改涉及以下两种方法:

  在什么情况下可以修改值值?我们知道传递给接口的实例对象是完整的值副本。如果反射方法称为Reflect.valueof(),则传递值类型变量,无论如何都不会修改。

  第一个是最基本的:反射可以是从界面反射的对象。

  反射是一种检测Internet中存储的类型和价值机制的类型和价值机制,可以通过typeOf函数和valueof函数获得。

  第2条实际上是相反的机制。反射可以从反射对象获得接口值。

  它通过接口()函数将值的返回值转换为接口变量。

  前两个意味着接口变量和反射类型对象可以相互转换。反射类型对象实际上是指前面提到的反射型和反射。

  第3条不容易理解:如果需要一个反射变量,则必须修改该值。

  可以设置的反射变量的本质是它存储原始变量本身,因此反射变量的操作将反映到原始变量本身;相反,如果反射变量不能代表原始变量,则进行反射变量,并且原始变量不会在原始变量上。语言水平。

  信息来自接口接口接口接口接口接口接口接口接口接口信息

  执行反射率(接口)后,获得了一种“ relfect.value”变量的类型。您可以通过其自己的接口()方法获得接口变量的真实内容。有实际类型。但是,我们可能知道原始类型,或者它可能是未知的原始类型。因此,下面有两种情况。

  知道已知类型之后,其相应类型的方法如下,然后通过接口方法强行使用转换,如下:

  示例代码:

  操作结果:

  阐明

  在许多情况下,我们可能不知道它的特定类型,所以我目前该怎么办?有必要穿越对其提交的学习的检测。示例如下:

  操作结果:

  未知类型的接口及其类型的特定变量是::

  未知类型接口(函数)的步骤(函数)为:

  原始:https://juejin.cn/post/7102669653704441869