jjzjj

Stringers

全部标签

go - Stringers 接口(interface)是否仅适用于 golang 中的值接收器

这个问题在这里已经有了答案:puzzlingbehaviorforStringers?(2个答案)关闭4年前。全部:只是一个简单的问题:围棋教程中https://tour.golang.org/methods/18我尝试将String()方法实现为func(ip*IPAddr)String()string{returnfmt.Sprintf("%d.%d.%d.%d",ip[0],ip[1],ip[2],ip[3])}我使用了指针接收器,但当它在main()中不起作用时forn,a:=rangeaddrs{fmt.Printf("%v:%v\n",n,a)}仍然显示[127,0,0,1

go - Stringers 令人费解的行为?

Go新手,所以请多多包涵。我一直在查看“围棋之旅”页面,无意中发现了一些关于Stringer的令人费解的东西。考虑https://tour.golang.org/methods/18处的练习我最初的回答是实现func(this*IPAddr)String()string{returnfmt.Sprintf("%d.%d.%d.%d",this[0],this[1],this[2],this[3])}然而,这不用于f主要打印只是fmt.Printf("%v:%v\n",name,ip)。如果我将打印更改为fmt.Printf("%v:%v\n",name,ip.String()),则无论

go - Stringers 令人费解的行为?

Go新手,所以请多多包涵。我一直在查看“围棋之旅”页面,无意中发现了一些关于Stringer的令人费解的东西。考虑https://tour.golang.org/methods/18处的练习我最初的回答是实现func(this*IPAddr)String()string{returnfmt.Sprintf("%d.%d.%d.%d",this[0],this[1],this[2],this[3])}然而,这不用于f主要打印只是fmt.Printf("%v:%v\n",name,ip)。如果我将打印更改为fmt.Printf("%v:%v\n",name,ip.String()),则无论

go - go stringers 练习有问题

对于Go之旅中的Stringers练习:对于两种不同格式的打印,我得到了两种不同的输出。我唯一改变的是格式动词。他们是%v和%d。理论上,它们会给出相同的输出。但是输出的顺序也改变了,这太奇怪了。对此有什么想法吗?下面是我的代码:packagemainimport"fmt"typeIPAddr[4]byte//TODO:Adda"String()string"methodtoIPAddr.func(aIPAddr)String()string{//HereiswhatIchangedreturnfmt.Sprintf("%d.%d.%d.%d",a[0],a[1],a[2],a[3])