Golang中的反射是通过refect实现的,我们今天就来看看他的使用和注意事项。
import "reflect"
//reflect包实现了运行时反射,允许程序操作任意类型的对象。
//典型用法是用静态类型interface{}保存一个值,通过调用TypeOf获取其动态类型信息,
//该函数返回一个Type类型值。调用ValueOf函数返回一个Value类型值,
//该值代表运行时的数据。Zero接受一个Type类型参数并返回一个代表该类型零值的Value类型值。
首先我们来查看官方文档中关于他的介绍,从这里我们可以看到,他的使用场景跟interface是分不开的,然后还可以了解到他的基本方法包含一个返回TypeOf一个ValueOf。然后我们来继续往下看他的TypeOf和ValueOf的使用。
TypeOf && ValueOf:
从这里可以看到他们接受一个interface参数返回一个type OR Value 类型,我们来测试一把:
返回值: