接口作为结构中的字段,接口调用将输入与结构相同的方法

在我的情况下,“ RequestHandlerProxy”是一种结构,该结构具有作为接口“ IAdapter”的字段,并且该接口具有可以调用的方法,该方法具有作为结构“ RequestHandlerProxy”的输入。请帮助我如何处理?如何定义值以构造“ RequestHandlerProxy”并传递?

下面是我的接口结构和方法:接口“ IAdapter”在文件“适配器”中

type RequestHandlerProxy struct {
    TestMode       bool
    coreInstanceId string
    adapter        adapters.IAdapter
    coreProxy      adapterif.CoreProxy
}

func NewRequestHandlerProxy(coreInstanceId string,iadapter adapters.IAdapter,cProxy adapterif.CoreProxy) *RequestHandlerProxy {
    var proxy RequestHandlerProxy
    proxy.coreInstanceId = coreInstanceId
    proxy.adapter = iadapter
    proxy.coreProxy = cProxy
    return &proxy
}

func (rhp *RequestHandlerProxy) Adapter_descriptor() (*empty.Empty,error) {
    return new(empty.Empty),nil    
}

func (rhp *RequestHandlerProxy) Device_types() (*voltha.DeviceTypes,error) {
    return nil,nil
}

func (rhp *RequestHandlerProxy) Health() (*voltha.HealthStatus,error) {    
    return nil,nil
}

以下是我在适配器文件中的界面:

type IAdapter interface {
    Adapter_descriptor() error
    Device_types() (*voltha.DeviceTypes,error)
    Health() (*voltha.HealthStatus,error)
}
kinshen911 回答:接口作为结构中的字段,接口调用将输入与结构相同的方法

您提供的代码有点难以理解(不完整,目的不明确),因此这里有一个简化的示例,希望可以回答您的问题。请注意,根据问题标题,我假设<wsse:Security soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next" soapenv:mustUnderstand="0" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> <wsse:UsernameToken> <wsse:Username>xxxx</wsse:Username> <wsse:Password>xxxxx</wsse:Password> </wsse:UsernameToken> </wsse:Security> 实现了接口RequestHandlerProxy的事实使您感到困惑;可能无关紧要(可能还有其他接受IAdapter的函数,在这些情况下,可以通过IAdapter或您自己的RequestHandlerProxy实现(例如{{1 }})。

我已经简化了IAdapter以包含一个函数并将所有内容都放在一个文件中。要在您的示例中进行扩展,您需要实现所有三个功能(adaptImplIAdapterAdapter_descriptor())。可以在go playground中运行代码(如果这不能回答您的问题,也许您可​​以修改该代码以提供问题的简化示例)。

Device_types()
本文链接:https://www.f2er.com/3038618.html

大家都在问