小白求助练习:Stringers

yao3258216 · 2016-04-27 12:24:26 · 2163 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2016-04-27 12:24:26 的主题,其中的信息可能已经有所发展或是发生改变。

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方法什么时候被调用的?明明都没调用它,为什么结果就变了


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2163 次点击  
加入收藏 微博
2 回复  |  直到 2016-06-07 17:34:09
polaris
polaris · #1 · 9年之前

fmt.Printf 会调用它,因为它实现了 Stringer 接口。先了解基础吧。

yao3258216
yao3258216 · #2 · 9年之前
polarispolaris #1 回复

`fmt.Printf` 会调用它,因为它实现了 Stringer 接口。先了解基础吧。

好的谢谢! 学习一段时实践理解了

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传