Golang之反射--reflect的基本使用

本文介绍了Golang中反射的基础使用,主要涉及reflect包的TypeOf和ValueOf方法。TypeOf用于获取参数类型,特别是结构体的字段名和标签;ValueOf则返回Value对象,用于获取未知对象的成员变量信息。此外,还讨论了Kind、Elem、IsNil、IsValid等方法的用法以及反射中的类型断言。
摘要由CSDN通过智能技术生成

      在go语言中反射使用的是内置的reflect包,最常用的就是TypeOfValueOf这两个方法。其中TypeOf主要是用来获取参数的类型(如果是结构体可以获取里面的字段名字段对应的标签tag),至于值得获取使用的是ValueOf,通过该函数可以返回一个Value对象(即将我们的参数值封装成了一个含有具体信息的值对象),在不知道某个对象内具有什么成员变量的时候通过反射就可以得到所有的成员变量信息。

//先准备好一个结构体,反射包用的最多的还是参数的类型获取和结构体的字段遍历,所以这里用结构体来做示例
type student struct {
   
	sid int `学号`
	name string `姓名`
	sex string `性别`
	phone string `手机`
	birth string `出生年月`
	class string `班级`
}
//准备好一条数据
stu := student{
   10001,"Alex","fale","12345678","2006-01-02","6"}

TypeOf函数使用:

	//获取参数的类型对象
	t := reflect.TypeOf(stu)
	//直接打印stu对象的类型
	fmt.Println(t)
	//t.NumField()获取结构体成员变量数量
	for i := 0;i < t.NumField();i++ {
   
		//t.Field(i)通过索引获取成员变量对象,通过Name获取成员变量名字
		//通过Tag获取成员变量的标签tag
		fmt.Println(t.Field(i).Name,":",t.Field(i).Tag
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值