Go语言反射获取

Go语言反射获取

反射介绍

反射可以在运行时动态获取变量的相关信息。Go语言中reflect包实现了运行时反射,允许程序操作任意类型的对象。典型用法是用静态类型interface{}保存一个值,通过调用TypeOf获取其动态类型信息,该函数返回一个Type类型值。调用ValueOf函数返回一个Value类型值,该值代表运行时的数据。Zero接受一个Type类型参数并返回一个代表该类型零值的Value类型值。

反射获取常用函数和方法:

TypeOf返回接口中保存的值的类型,TypeOf(nil)会返回nil。

ValueOf返回一个初始化为i接口保管的具体值的Value,ValueOf(nil)返回Value零值。

返回map类型的键的类型。如非映射类型将panic

返回索引序列指定的嵌套字段的类型,等价于用索引中每个值链式调用本方法,如非结构体将会panic

Get方法返回标签字符串中键key对应的值。如果标签中没有该键,会返回""。如果标签不符合标准格式,Get的返回值是不确定的。

反射获取应用

一、反射获取基本类型

运行结果:

二、反射获取结构体

运行结果:

三、反射获取结构体 Tag

1、获取结构体元素单一 Tag

运行结果:

2、获取结构体元素多个 Tag

3、循环获取结构体 Tag

下一篇:

Go语言反射操作------敬请期待!

第十一章 并发编程

看完本文有收获?那就分享给更多人吧

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181122G1QQ9600?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券