首页 > 其他 > 详细

golang反射初试

时间:2016-09-07 14:39:05      阅读:226      评论:0      收藏:0      [点我收藏+]

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生成的.

golang反射初试

原文:http://www.cnblogs.com/zolo/p/5849164.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!