当前位置:  开发笔记 > 编程语言 > 正文

如何在Golang中反映结构递归

如何解决《如何在Golang中反映结构递归》经验,为你挑选了1个好方法。



1> James Henstr..:

display函数内部,您声明valueValue为:

valueValue := reflectValue.Field(i).Interface()

所以valueValue是类型interface{}。在for循环中,您可以递归调用display

display(&valueValue)

因此它使用type参数进行调用*interface{}。在递归调用内部,reflectType将代表interface{}而不是恰好存储在值中的类型。由于NumField只能在reflect.Type的代表结构上调用,因此您会感到恐慌。

如果您想使用指向结构的指针来调用display,则可以使用类似以下的方法:

v := valueValue := reflectValue.Field(i).Addr()
display(v.Interface())

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有