golang反射初试
Posted zolo®
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang反射初试相关的知识,希望对你有一定的参考价值。
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反射初试的主要内容,如果未能解决你的问题,请参考以下文章