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