一.用反射修改普通变量,以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