golang反射初试
2016-09-07 13:39
197 查看
golang反射来自Go AST(Abstract Syntax Tree). reflect操作更多像traverse AST.
t := reflect.TypeOf(obj)
使用TypeOf()获取类型信息.
v := reflect.ValueOf(obj)
使用ValueOf获取值信息
如果t是Array, Slice, Map, Chan或Pointer,可以继续继续使用Elem()方法获取其元素的更多信息.
Elem(): 必须是Array, Slice, Map, Chan或 Pointer类型.
Field(int)或FieldByName(string)或FieldXXX()相关操作: 必须是Struct类型
Int(), String()...等叶结点操作: 必须是相应类型, 否则panic
对于Struct类型, 每个Field具有下列属性:
Name, Type, Tag是用户定义的
Index, Offset, PkgPath是GO AST生成的.
t := reflect.TypeOf(obj)
使用TypeOf()获取类型信息.
v := reflect.ValueOf(obj)
使用ValueOf获取值信息
如果t是Array, Slice, Map, Chan或Pointer,可以继续继续使用Elem()方法获取其元素的更多信息.
Elem(): 必须是Array, Slice, Map, Chan或 Pointer类型.
Field(int)或FieldByName(string)或FieldXXX()相关操作: 必须是Struct类型
Int(), String()...等叶结点操作: 必须是相应类型, 否则panic
对于Struct类型, 每个Field具有下列属性:
Name, Type, Tag是用户定义的
Index, Offset, PkgPath是GO AST生成的.
相关文章推荐
- [golang]反射的用处--代码自动生成
- Golang 反射
- golang通过反射设置结构体字段的值
- Golang 反射学习
- Golang 反射调用函数和方法
- GoLang反射的规则
- golang---利用反射机制对结构体进行循环赋值
- Golang通过反射检测变量类型
- golang reflect 反射机制
- golang中反射知识点浅析
- Golang-interface(四 反射)
- Golang 反射调用结构体属性、Tag、方法总结
- golang-反射机制
- golang的反射-Value
- Golang从入门到精通(十七):Golang反射
- golang 简单的反射
- Golang之反射reflect包
- 【GoLang】golang 如何像Java 一样通过类名反射对象?
- Golang 通过反射获取方法名称
- golang的反射-Type