反射获取值
概念说明
reflect.ValueOf 可以把普通值包装成反射值。
反射值上可以查看类型、种类,也可以通过 Interface 转回普通接口值。
如果已经知道目标类型,可以再配合类型断言取回具体类型。
语法/规则
- 使用
reflect.ValueOf(value)获取反射值。 - 使用
value.Kind()查看值的大类。 - 使用
value.Interface()转回any。 - 对不同 Kind 有专门方法,例如
Int()、String()。 - 使用专门方法前要先确认 Kind,否则可能 panic。
获取值示例
| |
输出结果:
| |
常见错误
- 对
string类型反射值调用Int(),会触发 panic。 - 以为
Interface()会直接返回具体类型变量,实际返回的是any。 - 反射值为零值或无效值时仍继续取值,导致运行时 panic。