【发布时间】:2014-09-01 21:21:02
【问题描述】:
在 Go 中,我可以通过 fmt.Printf("%T",Struct{}) 打印一种结构类型,但这会创建一个新结构并因此占用内存。所以我可能只打印fmt.Printf("main.Struct"),但是假设有人重构了Struct 的名称,那么打印语句没有得到更新并且代码中断。
如何在不创建实例的情况下打印结构类型?
【问题讨论】:
-
你真正想要达到什么目的?即在不创建实例的情况下打印类型对您有什么帮助?
-
这是用于错误报告
errors.New(fmt.Sprintf("expected structure of type %T, but provided a structure of type %T", Struct{}, object)),因此不会破坏任何脚本,但提供的信息会产生误导。我将问题保持一般性,因为在某些情况下重构也可能破坏脚本。
标签: go