comportamiento desconcertante para Stringers?
Nuevo para ir, así que tengan paciencia conmigo.
He estado mirando las páginas de "Tour of Go" y me topé con algo desconcertante sobre Stringers. Considere el ejercicio enhttps://tour.golang.org/methods/18
Mi respuesta inicial fue implementar
func (this *IPAddr) String() string {
return fmt.Sprintf("%d.%d.%d.%d", this[0], this[1], this[2], this[3])
}
sin embargo, esto no se usa solo para impresiones principalesfmt.Printf("%v: %v\n", name, ip)
. Si cambio la impresión afmt.Printf("%v: %v\n", name, ip.String())
, entonces se usa si el tipo de receptor es*IPAddr
oIPAddr
)
¿Por qué está pasando esto?