【发布时间】:2017-02-05 11:53:29
【问题描述】:
Golang 菜鸟问题:为什么我不能在 String() 实现方法中对结构体使用 "%+v" 标志?
我有一个结构,我想在其中实现一个 String() 方法以进行漂亮的打印。我喜欢here 给出的答案,但我不喜欢打字,所以我试图修改它以使用结构的"%+v" 格式标志返回一个字符串。来自fmt 文档:
%v 打印结构时默认格式的值,加号标志 (%+v) 添加字段名
如果我简单地用fmt.Printf("%+v", color) 调用它,这很好用,但是如果我尝试将+ 标志放在String() 实现中,我会遇到堆栈溢出(我第一次有机会询问“堆栈溢出” stackoverflow.com 上的问题 ;) )
我确定我不理解这里的指针引用,或者有一些递归。我怀疑这个菜鸟发现了我的第一个 Golang 错误,有人可以解释一下吗?
【问题讨论】:
标签: go