一篇学会Go中reflect反射的详细用法

应用场景

1.判断函数变量是否否和标准

2.验证接口值是否合理如(是否为空,传入的字段是否合规)

3.获取变量的类型进行断言等操作

在Go语言的反射机制中,任何接口值都由是一个具体类型和具体类型的值两部分组成的(我们在上一篇接口的博客中有介绍相关概念)。 在Go语言中反射的相关功能由内置的reflect包提供,任意接口值在反射中都可以理解为由reflect.Type和reflect.Value两部分组成,并且reflect包提供了reflect.TypeOf和reflect.ValueOf两个函数来获取任意对象的Value和Type。

1.结构体中使用反射

  • 获取 2 种类型信息的方法:

reflect.TypeOf() 获取类型信息,返回 Type 类型;

reflect.ValueOf() 获取数据信息,返回 Value 类型。