我不知道编译错误的原因是什么。我将不胜感激。
./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
答案 0 :(得分:14)
webhook.Listener
唯一的方法是未导出的,因此只有该包中的标识符才能实现它。如果您希望其他包中的类型能够实现它,则需要将其导出:
type Listener interface {
Handle()
}