我有一个golang接口(interface)typeIinterface{A()B()}这个接口(interface)是typeSstruct的一个元素。现在我想向这个接口(interface)添加一个函数C(),它将被称为S类型的对象。但是这个接口(interface)是由许多其他类型实现的(例如:T)。编译时出现错误,因为T没有实现C()。一个解决方法是在T中添加C()的虚拟实现,它只返回T的返回类型的值。有没有更好的方法来做到这一点? 最佳答案 您可以使用单个结构实现多个接口(interface),如下所示。然后,您可以让方
我有一个golang接口(interface)typeIinterface{A()B()}这个接口(interface)是typeSstruct的一个元素。现在我想向这个接口(interface)添加一个函数C(),它将被称为S类型的对象。但是这个接口(interface)是由许多其他类型实现的(例如:T)。编译时出现错误,因为T没有实现C()。一个解决方法是在T中添加C()的虚拟实现,它只返回T的返回类型的值。有没有更好的方法来做到这一点? 最佳答案 您可以使用单个结构实现多个接口(interface),如下所示。然后,您可以让方
我正在尝试在第三方库之上创建一个层,在本例中为libchan.这是我定义的接口(interface):typeReceiverStreaminterface{Receive(msginterface{})error}typeInboundTransportinterface{WaitReceiveChannel()(ReceiverStream,error)}InboundTransport是Transport类型的替代://libchan.gotypeTransportinterface{//NewSendChannelcreatesandreturnsanewsendchannel
我正在尝试在第三方库之上创建一个层,在本例中为libchan.这是我定义的接口(interface):typeReceiverStreaminterface{Receive(msginterface{})error}typeInboundTransportinterface{WaitReceiveChannel()(ReceiverStream,error)}InboundTransport是Transport类型的替代://libchan.gotypeTransportinterface{//NewSendChannelcreatesandreturnsanewsendchannel
下一个实现附加到接口(interface)的方法的方法是否正确?(getKey,getData)typereaderinterface{getKey(veruint)stringgetData()string}typelocationstruct{readerfileLocationstringerros.Error}func(self*location)getKey(veruint)string{...}func(self*location)getData()string{...}funcNewReader(fileLocationstring)*location{_location
下一个实现附加到接口(interface)的方法的方法是否正确?(getKey,getData)typereaderinterface{getKey(veruint)stringgetData()string}typelocationstruct{readerfileLocationstringerros.Error}func(self*location)getKey(veruint)string{...}func(self*location)getData()string{...}funcNewReader(fileLocationstring)*location{_location
在我的一个Go项目中,我想创建一个基类的多个子类,并能够通过基类/接口(interface)变量对子类的实例进行操作(我'我使用了“类”这个词,尽管这个概念在Go中并不真正存在)。下面是它在C++中的样子,只是为了说明我的意思:#includeusingnamespacestd;classBase{public:intx,y;virtualvoidDoStuff(){};};classThing:publicBase{public:voidDoStuff(){x=55;y=99;}};Base*gSomething;intmain(intargc,char**argv){gSometh
在我的一个Go项目中,我想创建一个基类的多个子类,并能够通过基类/接口(interface)变量对子类的实例进行操作(我'我使用了“类”这个词,尽管这个概念在Go中并不真正存在)。下面是它在C++中的样子,只是为了说明我的意思:#includeusingnamespacestd;classBase{public:intx,y;virtualvoidDoStuff(){};};classThing:publicBase{public:voidDoStuff(){x=55;y=99;}};Base*gSomething;intmain(intargc,char**argv){gSometh
我试过了func(mmap[string]interface{})Foo(){...}和func(m*map[string]interface{})Foo(){...}但是去测试错误invalidreceivertypemap[string]interface{}(map[string]interface{}isanunnamedtype)所以我必须添加更多的文字来保持这里的快乐 最佳答案 您需要定义一个新类型才能为其附加方法。packagemainimport"fmt"typeMyMapmap[string]interface{}
我试过了func(mmap[string]interface{})Foo(){...}和func(m*map[string]interface{})Foo(){...}但是去测试错误invalidreceivertypemap[string]interface{}(map[string]interface{}isanunnamedtype)所以我必须添加更多的文字来保持这里的快乐 最佳答案 您需要定义一个新类型才能为其附加方法。packagemainimport"fmt"typeMyMapmap[string]interface{}