```go
package main
import "fmt"
type IPAddr [4]byte
func (v IPAddr) String() string{
return fmt.Sprintf("%v.%v.%v.%v", v[0],v[1],v[2],v[3])
}
func main(){
addrs := map[string]IPAddr{
"loopback": {127,0,0,1},
"googleDNS": {8,8,8,8},
}
for n, a := range addrs{
fmt.Printf("%v:%v\n", n, a)
}
}
```
请问其中的func (v IPAddr) String() string方法什么时候被调用的?明明都没调用它,为什么结果就变了