反射的作用是在程序运行时获取数据的类型信息和值信息。
golang提供了一个官方包reflect来获取运行时数据。关键点在于两个方法TypeOf和ValueOf。
TypeOf可以获取到类型信息,ValueOf可以获取值信息。
下面演示下如何使用这两个方法。
输出:
struct name : Song
fieldName: Name
json tag: name
xml tag: name
value: 模特
fieldName: Length
json tag: length
xml tag: length
value: 126
这就是反射的基本用法,通过上面的演示可以看出来可以动态获取
结构体内的所有字段
获取字段的名称和类型
获取字段的值
获取字段的标签
字段的标签用处比较多,标签属于key-value结构,比较常见的标签有两种分别是json和xml标签
json标签在json 序列化 时使用
xml标签在xml序列化时使用
下面再说下动态获取interface{}的类型有两个比较简单的用法:
1.通过switch A.(type)获取类型
2.通过golang的类型诊断来判断接口的类型
感谢大家的浏览,喜欢这篇文章的同学可以点击一下关注,我们一起学习进步。