调试需要,要获得某个包中非导出结构体的值,大概是这样:
package third
type entry struct{
Value atomic.Value
}
这个 Value 中储存的是另一个非导出结构体的指针 *third.anotherEntry
:
package third
type anotherEntry struct{
Key ExportStruct //某个导出的结构体
}
楼主用强制转换大法,搞到了 Value 的值,但问题是 Value.Load()是个 interface ,不能通过类型断言转换成*third.anotherEntry
,尝试用反射:
reflect.ValueOf(Value.Load()).Elem().Field(0).Interface()
但反射也无法获得非导出结构体的 interface ,会直接 panic 。有什么黑科技可以用吗?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.