草庐IT

multiple-interface-implem

全部标签

pointers - 为什么我不能使用指向需要 *interface{} 的特定类型的指针?

我有以下功能:funcbytesToData(datainterface{},b[]byte)error{buf:=bytes.NewBuffer(b)dec:=gob.NewDecoder(buf)returndec.Decode(data)}我用它来获取进出boltdb的结构数据。我想做的是将该签名更改为:funcbytesToData(data*interface{},b[]byte)error然后我希望能够像这样调用它(b在这种情况下是一个gob编码的Account)acc:=&Account{}err:=bytesToData(acc,b)但是当我这样做时,我收到了类似Can

pointers - 为什么我不能使用指向需要 *interface{} 的特定类型的指针?

我有以下功能:funcbytesToData(datainterface{},b[]byte)error{buf:=bytes.NewBuffer(b)dec:=gob.NewDecoder(buf)returndec.Decode(data)}我用它来获取进出boltdb的结构数据。我想做的是将该签名更改为:funcbytesToData(data*interface{},b[]byte)error然后我希望能够像这样调用它(b在这种情况下是一个gob编码的Account)acc:=&Account{}err:=bytesToData(acc,b)但是当我这样做时,我收到了类似Can

戈朗 : how is "func() interface {}" and "func() *MyStruct" incompatible types?

假设我有一段代码,其中一个函数接受另一个函数作为参数:typePersonstruct{Namestring}funcpersonBuilder()*Person{return&Person{Name:"John"}}funcprintRetrievedItem(callbackfunc()interface{}){fmt.Print(callback());}funcdoStuff(){printRetrievedItem(personBuilder);}这导致错误cannotusepersonBuilder(typefunc()*Person)astypefunc()interfa

戈朗 : how is "func() interface {}" and "func() *MyStruct" incompatible types?

假设我有一段代码,其中一个函数接受另一个函数作为参数:typePersonstruct{Namestring}funcpersonBuilder()*Person{return&Person{Name:"John"}}funcprintRetrievedItem(callbackfunc()interface{}){fmt.Print(callback());}funcdoStuff(){printRetrievedItem(personBuilder);}这导致错误cannotusepersonBuilder(typefunc()*Person)astypefunc()interfa

golang 将 args(一段字符串)作为 "args ... interface{}"传递

这是我的代码:packagemainimport("database/sql")funcmain(){table:="sometable"args:=[]interface{}{"string1","string2","string3","string4"}_,err:=db.Exec("INSERTINTO"+table+"VALUES('',?,?,?,?)",args)iferr!=nil{returnerr}}我想传入args但不能将它们格式化为"args...interface{}"当前输出为:sql:转换Exec参数#0的类型:不支持的类型[]interface{},一个s

golang 将 args(一段字符串)作为 "args ... interface{}"传递

这是我的代码:packagemainimport("database/sql")funcmain(){table:="sometable"args:=[]interface{}{"string1","string2","string3","string4"}_,err:=db.Exec("INSERTINTO"+table+"VALUES('',?,?,?,?)",args)iferr!=nil{returnerr}}我想传入args但不能将它们格式化为"args...interface{}"当前输出为:sql:转换Exec参数#0的类型:不支持的类型[]interface{},一个s

interface - Golang接口(interface)不需要导入?

如果您看一下File结构,它有一个Read()和Write()函数,它们与io.Writer和io.Reader接口(interface)Read()和Write()函数。但是io包在File包中找不到(未导入)。这是否意味着接口(interface)根本不需要导入就可以使用?只要Read()定义与接口(interface)相同,就可以暗示它是io.Writer或io.Reader接口(interface)?我:http://golang.org/pkg/io/操作系统:http://golang.org/pkg/os/ 最佳答案

interface - Golang接口(interface)不需要导入?

如果您看一下File结构,它有一个Read()和Write()函数,它们与io.Writer和io.Reader接口(interface)Read()和Write()函数。但是io包在File包中找不到(未导入)。这是否意味着接口(interface)根本不需要导入就可以使用?只要Read()定义与接口(interface)相同,就可以暗示它是io.Writer或io.Reader接口(interface)?我:http://golang.org/pkg/io/操作系统:http://golang.org/pkg/os/ 最佳答案

go - 如何将 Go 接口(interface)扩展到另一个接口(interface)?

我有一个Go接口(interface):typePeopleinterface{GetName()stringGetAge()string}现在我想要另一个接口(interface)Student:1.typeStudentinterface{GetName()stringGetAge()stringGetScore()intGetSchoolName()string}但我不想编写重复函数GetName和GetAge。有没有办法避免在Student界面写GetName和GetAge?喜欢:2.typeStudentinterface{PeopleinterfaceGetScore()i

go - 如何将 Go 接口(interface)扩展到另一个接口(interface)?

我有一个Go接口(interface):typePeopleinterface{GetName()stringGetAge()string}现在我想要另一个接口(interface)Student:1.typeStudentinterface{GetName()stringGetAge()stringGetScore()intGetSchoolName()string}但我不想编写重复函数GetName和GetAge。有没有办法避免在Student界面写GetName和GetAge?喜欢:2.typeStudentinterface{PeopleinterfaceGetScore()i