【发布时间】:2017-08-21 07:24:33
【问题描述】:
package main
import "fmt"
type TT struct {
a int
b float32
c string
}
func (t *TT) String() string {
return fmt.Sprintf("%+v", *t)
}
func main() {
tt := &TT{3, 4, "5"}
fmt.Printf(tt.String())
}
代码可以正常工作。但是如果我如下更改String 方法,就会导致死循环。不同之处在于*t 被替换为t。为什么?
func (t *TT) String() string {
return fmt.Sprintf("%+v", t)
}
【问题讨论】:
标签: string pointers go methods stack-overflow