反射的基本原理

未匹配的标注

反射的基本原理

想要很好了理解、使用反射,首先要理清 变量、 reflect.Type类型、 reflect.Type类型对应方法,以及reflect.Value类型和reflect.Value类型对应方法之间的关系。

我们结合Golang帮助文档,对应下图来梳理他们之间大致的调用关系。

反射的基本原理

实时上,我们学习反射,主要是学习使用上面的Type 和 Value 所对应的诸多方法的使用。借助这些方法完成变量到Type,通过Type 反过来再操作变量。 或者从变量到 Value类型,通过Value 提供的方法反向再操作这个变量。

说到这里,可能有的同学会觉得比较奇怪,为什么要提供这种机制呢?

使用反射这种机制的好处是,系统可以借助反射在底层帮助我们创建对象,不需要所有的事情都由程序员自己来完成。甚至可以在底层帮助我们调用方法。而它所做的这些事情,对于上层使用的用户来说是完全不透明、不可见的。

因此,为了提高应用性,降低用户使用难度,许多Go框架开发中大量的使用了反射技术。

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~