go反射
- Go 语言里有个反射三定律,是你在学习反射时,很重要的参考:
-
Reflection goes from interface value to reflection object.
-
Reflection goes from reflection object to interface value.
-
To modify a reflection object, the value must be settable.
翻译一下,就是:
-
反射可以将接口类型变量 转换为“反射类型对象”;
-
反射可以将 “反射类型对象”转换为 接口类型变量;
-
如果要修改 “反射类型对象” 其类型必须是 可写的;
- reflect.TypeOf(i) :获得接口值的类型
- reflect.ValueOf(i):获得接口值的值
- reflect.ValueOf(i).Elem():获得指针指向的数据
- reflect.ValueOf(i).Kind():获得反射对象类别
- reflect.ValueOf(i).Type():获得反射对象类型(范围小于kind)
例如:
注意: 不是接收变量指针创建的反射对象,是不具备『可写性』的
|
请发表评论