Golang用反射修改普通变量,以及通过反射对结构体进行操作

本文介绍了如何使用Golang的反射库来修改普通变量和操作结构体,包括遍历字段、调用方法等。重点讲解了必须通过指针接收者以及对结构体方法的调用规则。
摘要由CSDN通过智能技术生成

一.用反射修改普通变量,以int举例

先看一个简单的主函数 ,修改m

先通过reflect.ValueOf 获得 value ,并看看value 和  value.kind

因为我们是通过  func (v Value) Elem() Value获得 elem 来修改传入的参数。如果v的Kind不是Interface{}或Ptr 会panic;如果v持有的值为nil,会返回Value零值。

这就说明了传入的参数必须是地址的原因,

然后我们利用elem 对传入的参数操作

到这对普通参数的修改已经完成了

这里解释为什么是  elem.SetInt(20)   而不是value.SetInt(20)

因为修改函数   func (v Value) SetInt(x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值