结构初始化以满足没有显式方法定义的接口

下面给出伪代码:


type(

    MyStruct struct {

        AFunction  func(string) ([]byte, error)

    }


    MyInterface interface {

        AFunction(string) ([]byte, error)

    }

)


func NeedThis(s string) ([]byte, error){

    //relevant function stuff

}


m := &MyStruct{AFunction: NeedThis}

出现m不满足MyInterface接口的问题;我可以理解为什么会这样。有没有办法以这样一种方式将函数附加到结构上,即构造的结构满足接口,而无需在结构上实际构建定义方法?我对此有一些模糊/错误的推理,也许有助于为我澄清这一点或展示一种更好的方法来解决这种情况。


慕莱坞森
浏览 161回答 2
2回答

呼啦一阵风

难道你不只是定义一个方法AFunction上MyStruct一个分派到存储AFunction函数指针?如果你有很多这样的东西并不理想,但我认为它可以吗?即类似的东西func (s MyStruct) AFunction(str string) ([]byte, error) {    return s.AFunction(str)}编辑:上述内容可能会导致编译器错误,因为s.AFunction它不明确,因此您可能必须为它们(方法和函数指针)提供不同的名称,但它应该给出正确的想法。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go