对于 Go 之旅中的 Stringers 练习:我为两种不同格式的打印获得了两种不同的输出。我唯一改变的是格式动词。他们是 %v 和 %d。理论上,它们会给出相同的输出。然而输出的顺序也改变了,这太奇怪了。对此有什么想法吗?下面是我的代码:package mainimport "fmt"type IPAddr [4]byte// TODO: Add a "String() string" method to IPAddr.func (a IPAddr)String() string{ // Here is what I changed return fmt.Sprintf("%d.%d.%d.%d",a[0],a[1],a[2],a[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) }}输出:谷歌DNS:8.8.8.8环回:127.0.0.1package mainimport "fmt"type IPAddr [4]byte// TODO: Add a "String() string" method to IPAddr.func (a IPAddr)String() string{ // Here is what I changed return fmt.Sprintf("%v.%v.%v.%v",a[0],a[1],a[2],a[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) }}输出:环回:127.0.0.1谷歌DNS:8.8.8.8输出的顺序也发生了变化。
3 回答
- 3 回答
- 0 关注
- 202 浏览
添加回答
举报
0/150
提交
取消