新手,所以请多多包涵。
我一直在看“Tour of Go”页面,偶然发现了一些关于 Stringers 的令人费解的东西。考虑https://tour.golang.org/methods/18上的练习
我最初的回答是实施
func (this *IPAddr) String() string {
return fmt.Sprintf("%d.%d.%d.%d", this[0], this[1], this[2], this[3])
}
但是,这不用于 f 主要打印只是fmt.Printf("%v: %v\n", name, ip). 如果我将打印更改为fmt.Printf("%v: %v\n", name, ip.String()),则无论接收器类型是*IPAddr还是IPAddr) 都将使用它。
为什么会这样?
白衣染霜花
素胚勾勒不出你
相关分类