我试图实现一个函数来打印带有反射和 DFS 的结构树interface{}。
但是我发现很难取消对多级指针的引用(NumField()不能与指针一起使用)。就像:
func Tree(i interface{}) {
......
}
var a = 10
var b = &a
var c = &b
Tree(c)
在我看来,也许:
for reflect.ValueOf(i).Kind() == reflect.Ptr {
t := i.(reflect.Typeof(i))
i = *t
}
可以工作,但事实并非如此。
有什么办法可以解决这个问题吗?
繁花如伊
缥缈止盈
SMILET
相关分类