草庐IT

human-interface-guidelines

全部标签

go - Golang 中的接口(interface)和指针之旅 #55 和 #57

在这两个教程示例中,为什么带有指针接收器的方法在一种情况下满足接口(interface)而在另一种情况下不满足?在example#55Vertex类不满足Abser接口(interface),因为方法Abs仅针对*Vertex而不是顶点:typeAbserinterface{Abs()float64}typeVertexstruct{X,Yfloat64}func(v*Vertex)Abs()float64{returnmath.Sqrt(v.X*v.X+v.Y*v.Y)}错误信息是:prog.go:22:cannotusev(typeVertex)astypeAbserinassig

go - Golang 中的接口(interface)和指针之旅 #55 和 #57

在这两个教程示例中,为什么带有指针接收器的方法在一种情况下满足接口(interface)而在另一种情况下不满足?在example#55Vertex类不满足Abser接口(interface),因为方法Abs仅针对*Vertex而不是顶点:typeAbserinterface{Abs()float64}typeVertexstruct{X,Yfloat64}func(v*Vertex)Abs()float64{returnmath.Sqrt(v.X*v.X+v.Y*v.Y)}错误信息是:prog.go:22:cannotusev(typeVertex)astypeAbserinassig

go - 如何检查接口(interface)是 golang 中的 map[string]string

我想检查输出变量是否为map[string]string。输出应该是一个map[string]string并且它应该是一个ptr。我检查了ptr值。但是我不知道如何检查映射的键是否是字符串。sorryformybadenglishimport("fmt""reflect")funcDecode(filenamestring,outputinterface{})error{rv:=reflect.ValueOf(output)ifrv.Kind()!=reflect.Ptr{returnfmt.Errorf("Outputshouldbeapointerofamap")}ifrv.IsN

go - 如何检查接口(interface)是 golang 中的 map[string]string

我想检查输出变量是否为map[string]string。输出应该是一个map[string]string并且它应该是一个ptr。我检查了ptr值。但是我不知道如何检查映射的键是否是字符串。sorryformybadenglishimport("fmt""reflect")funcDecode(filenamestring,outputinterface{})error{rv:=reflect.ValueOf(output)ifrv.Kind()!=reflect.Ptr{returnfmt.Errorf("Outputshouldbeapointerofamap")}ifrv.IsN

go - 什么是 ...interface{} 作为参数

我指的是http://golang.org/pkg/log/上funcPrintf的源代码funcPrintf(formatstring,v...interface{})PrintfcallsOutputtoprinttothestandardlogger.Argumentsarehandledinthemanneroffmt.Printf.我有两个问题:什么是“...”?...interface{}是什么意思?非常感谢 最佳答案 这并不是具体要走的路,所以与其他回答者不同,我会走更一般的路线。关于变量参数(...)...在这里,称

go - 什么是 ...interface{} 作为参数

我指的是http://golang.org/pkg/log/上funcPrintf的源代码funcPrintf(formatstring,v...interface{})PrintfcallsOutputtoprinttothestandardlogger.Argumentsarehandledinthemanneroffmt.Printf.我有两个问题:什么是“...”?...interface{}是什么意思?非常感谢 最佳答案 这并不是具体要走的路,所以与其他回答者不同,我会走更一般的路线。关于变量参数(...)...在这里,称

go - 实现阅读器接口(interface)

我了解Go接口(interface)的一般概念。但是,我最近正在研究实现io.Reader接口(interface),这让我感到困惑。我发现这篇文章没有多大帮助。ReaderinterfaceandtheReadmethodingolang首先,公认的答案是使用io.Reader的Read函数,据我所知,该函数从未实现过。其次,Read函数如何在类似ioutil.ReadAll的上下文中工作。它需要一些实现了io.Reader接口(interface)的东西并返回一段字节。我不明白如何将仅返回int和err的内容处理成byteslice段。编辑:我在go-nutsIRCchannel中

go - 实现阅读器接口(interface)

我了解Go接口(interface)的一般概念。但是,我最近正在研究实现io.Reader接口(interface),这让我感到困惑。我发现这篇文章没有多大帮助。ReaderinterfaceandtheReadmethodingolang首先,公认的答案是使用io.Reader的Read函数,据我所知,该函数从未实现过。其次,Read函数如何在类似ioutil.ReadAll的上下文中工作。它需要一些实现了io.Reader接口(interface)的东西并返回一段字节。我不明白如何将仅返回int和err的内容处理成byteslice段。编辑:我在go-nutsIRCchannel中

interface - 通过 Go 中的接口(interface)解耦......接口(interface)实现者的一部分?

好的。我知道这是一个常见问题解答,我认为答案是“放弃,那样行不通”,但我只是想确保我没有遗漏任何东西。我仍在思考接口(interface)使用的最佳实践和规则。我有不同包中的代码,我希望保持解耦,就像这样(不起作用,否则我不会在这里):packageAtypeFoostruct{}func(f*Foo)Bars()([]*Foo,error){foos:=make([]*Foo,0)//someloopwhichappendsabunchofrelated*Footofoosreturnfoos,nil}packageBtypeFoolikeinterface{Bars()[]Fool

interface - 通过 Go 中的接口(interface)解耦......接口(interface)实现者的一部分?

好的。我知道这是一个常见问题解答,我认为答案是“放弃,那样行不通”,但我只是想确保我没有遗漏任何东西。我仍在思考接口(interface)使用的最佳实践和规则。我有不同包中的代码,我希望保持解耦,就像这样(不起作用,否则我不会在这里):packageAtypeFoostruct{}func(f*Foo)Bars()([]*Foo,error){foos:=make([]*Foo,0)//someloopwhichappendsabunchofrelated*Footofoosreturnfoos,nil}packageBtypeFoolikeinterface{Bars()[]Fool