为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
慕莱坞森 2021-08-10 15:11:24
下面给出伪代码: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接口的问题;我可以理解为什么会这样。有没有办法以这样一种方式将函数附加到结构上,即构造的结构满足接口,而无需在结构上实际构建定义方法?我对此有一些模糊/错误的推理,也许有助于为我澄清这一点或展示一种更好的方法来解决这种情况。
查看完整描述

2 回答

?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

难道你不只是定义一个方法AFunction上MyStruct一个分派到存储AFunction函数指针?如果你有很多这样的东西并不理想,但我认为它可以吗?


即类似的东西


func (s MyStruct) AFunction(str string) ([]byte, error) {

    return s.AFunction(str)

}

编辑:上述内容可能会导致编译器错误,因为s.AFunction它不明确,因此您可能必须为它们(方法和函数指针)提供不同的名称,但它应该给出正确的想法。


查看完整回答
反对 回复 2021-08-10
  • 2 回答
  • 0 关注
  • 160 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信