为了账号安全,请及时绑定邮箱和手机立即绑定

去纵梁运动的麻烦

去纵梁运动的麻烦

Go
幕布斯7119047 2021-09-13 15:38:17
对于 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
提交
取消
意见反馈 帮助中心 APP下载
官方微信