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反射初试的主要内容,如果未能解决你的问题,请参考以下文章

golang反射自定义tag

golang反射

golang Golang反射:遍历任意结构

golang golang反射:数组的接口

golang Golang通过反射获取结构体的标签

golang 反射