您的位置:首页 > 编程语言 > Go语言

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生成的.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: