Rätselhaftes Verhalten für Stringers?

New to Go, also bitte trage es mit mir.

Ich habe mir die "Tour of Go" -Seiten angesehen und bin über etwas Rätselhaftes bei Stringers gestolpert. Betrachten Sie die Übung beihttps: //tour.golang.org/methods/1

Meine erste Antwort war die Implementierung von

func (this *IPAddr) String() string {
  return fmt.Sprintf("%d.%d.%d.%d", this[0], this[1], this[2], this[3])
}

Dies wird jedoch nicht für Hauptdrucke verwendet, sondern nur fürfmt.Printf("%v: %v\n", name, ip). Wenn ich den Druck auf @ ändefmt.Printf("%v: %v\n", name, ip.String()), dann wird verwendet, ob der Empfängertyp @ i*IPAddr oderIPAddr).

Warum passiert dies

Antworten auf die Frage(4)

Ihre Antwort auf die Frage