Go 结构不';t实现接口,即使它具有相同的功能
我不知道下面编译错误的原因是什么。我将感谢任何帮助Go 结构不';t实现接口,即使它具有相同的功能,go,Go,我不知道下面编译错误的原因是什么。我将感谢任何帮助 ./router.go:190: cannot use listener (type webhooklistener.MyListener) as type webhook.Listener in field value: webhooklistener.MyListener does not implement webhook.Listener (missing webhook.handle method) have
./router.go:190: cannot use listener (type webhooklistener.MyListener) as type webhook.Listener in field value:
webhooklistener.MyListener does not implement webhook.Listener (missing webhook.handle method)
have webhooklistener.handle()
want webhook.handle()
客户:
package webhook
type Listener interface {
handle()
}
type Client struct {
Listener Listener
}
听众:
package webhooklistener
type MyListener struct {
}
func (ll MyListener) handle() {
}
路由器:
listener := webhooklistener.MyListener{}
client := webhook.Client{listener} // COMPILATION ERROR
webhook.Listener
的唯一方法是未报告的,因此只有该包中的标识符才能实现它。如果希望其他包中的类型能够实现它,则需要将其导出:
type Listener interface {
Handle()
}
尝试将
handle()
方法大写,它可能没有导出供外部使用。