【发布时间】:2014-08-13 17:28:47
【问题描述】:
下面给出伪 go 代码:
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接口;我有点明白为什么会这样。有没有办法将函数附加到结构上,使得构造的结构满足接口而不实际在结构上构建定义方法?我对此有一些模糊/错误的推理,也许有助于为我澄清这一点,或者展示一种更好的方式来解决这种情况。
【问题讨论】:
-
您能更好地解释您要解决的问题吗?您会发现这不可能直接实现,所以我不知道该去哪里回答。
-
我正在做一些事情,使用一个东西来扩展另一个可能提供或不提供资产的相同东西,你可以在这里看到它是如何结束的:github.com/thrisp/fleet/blob/develop/asset.go 和这里@987654322 @