为什么这段代码运行后进程会死掉?

KunGo · · 3787 次点击
嗯,String()实现了Stringer这个接口,所以会产生无限递归导致程序错误
#3
更多评论
String()这个函数里面不能有Println等类似的输出,具体可以去了解String()这个函数实现的是什么接口
#1
polaris
社区,需要你我一同完善!
正解。 另外,标准库中有说明: [fmt — 格式化IO](https://github.com/polaris1119/The-Golang-Standard-Library-by-Example/blob/master/chapter01/01.3.md): 为避免以下这类递归的情况: type X string func (x X) String() string { return Sprintf("<%s>", x) } 需要在递归前转换该值: func (x X) String() string { return Sprintf("<%s>", string(x)) }
#2