草庐IT

stringer

全部标签

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

dataframe - 修改go中Stringer接口(interface)中的一个默认值

我在这里查看gota数据框中的打印界面:https://github.com/kniren/gota/blob/master/dataframe/dataframe.go#L99我看到默认值是shortCols=true,给定here.当我调用打印数据框时,如何覆盖此值以在打印时使用shortCols=false进行打印?fmt.Println(fil)例如,我想打印所有列,而不仅仅是前5列,因为上面的结果如下:[31x16]DataFramevalAvalBvalCvalDvalE...0:5788.3049179591.040000...1:5778.3029179752.0500

go - 将 []fmt.Stringer 参数传递给函数

这个问题在这里已经有了答案:CanItypeassertasliceofinterfacevalues?(2个答案)关闭3年前。我有一个实现stringer接口(interface)的类型//RowIDstorestheIDofasinglerowinatabletypeRowID[]string//StringimplementsStringerinterfaceforRowIDfunc(rRowID)String()string{returnfmt.Sprintf("[%s]",strings.Join(r,","))}我有一个函数,我想将这种类型(或任何其他实现Stringer接

go - 为什么 IO.Writer 不填充接收器?

我正在尝试测试模板生成工具。为了做到这一点,我认为捕获模板执行输出的最简单方法是使用iowriter并在测试期间提供它。问题是由于某些原因,接收器没有使用模板输出“更新”。希望下面的代码能更好地解释我面临的问题。packagemainimport"fmt"import"text/template"typeCompanystruct{Namestring}typeCompanies[]Companyfuncmain(){s:=new(stringer)v:=Companies{Company{Name:"Sony"}}tmp:=template.Must(template.New("ma

go - Stringer接口(interface),int类型

我刚刚通过TourofGo学习golang语言,我到达了Stringer部分。(https://tour.golang.org/methods/17)我试图理解它是如何工作的,所以我尝试了它。它没有用。代码:packagemainimport("fmt")typeIintfunc(iI)String()string{returnfmt.Sprintf("%v",i)}funcmain(){i:=I(10)fmt.Println(i)}当我运行示例时出现错误,我不太明白问题是什么。我的理论是使用String()方法:当我运行打印机代码时,程序会查找stringer方法,如果存在则运行它。

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()),则无论

string - 在 Go 中,为什么在转换为字符串时不使用 stringer 接口(interface)?

packagemaintypefoostruct{barstringbazstring}func(ffoo)String()string{returnf.bar+""+f.baz}funcmain(){f:=foo{"hello","world"}v:=string(f)}这输出main.go:14:cannotconvertf(typefoo)totypestring。因此,将某些内容转换为字符串似乎不会查看stinger接口(interface)。我的猜测是,这是因为转换是在比纵梁接口(interface)更低的级别上实现的,并且不可能/很难将两者混合使用,但我不确定。任何人都可以

string - 在 Go 中,为什么在转换为字符串时不使用 stringer 接口(interface)?

packagemaintypefoostruct{barstringbazstring}func(ffoo)String()string{returnf.bar+""+f.baz}funcmain(){f:=foo{"hello","world"}v:=string(f)}这输出main.go:14:cannotconvertf(typefoo)totypestring。因此,将某些内容转换为字符串似乎不会查看stinger接口(interface)。我的猜测是,这是因为转换是在比纵梁接口(interface)更低的级别上实现的,并且不可能/很难将两者混合使用,但我不确定。任何人都可以

go - 为什么 switch 在下面的 golang 代码示例中匹配不同的类型

链接:https://play.golang.org/p/69I8PAuoAV摘录:packagemainimport"fmt"typeStringerinterface{String()string}typefakeStringstruct{contentstring}//functionusedtoimplementtheStringerinterfacefunc(s*fakeString)String()string{returns.content}funcprintString(valueinterface{}){switchstr:=value.(type){casestri