猿问

结构体即使功能相同也不实现接口

我不知道出现以下编译错误的原因是什么。我将不胜感激任何帮助。


./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


米琪卡哇伊
浏览 118回答 1
1回答

回首忆惘然

webhook.Listener的 only 方法未导出,因此只有该包中的标识符才能实现它。如果希望其他包中的类型能够实现它,则需要将其导出:type Listener interface {    Handle()}
随时随地看视频慕课网APP

相关分类

Go
我要回答