下面给出伪代码: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它不明确,因此您可能必须为它们(方法和函数指针)提供不同的名称,但它应该给出正确的想法。
- 2 回答
- 0 关注
- 160 浏览
添加回答
举报
0/150
提交
取消