请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

接口和接口的实现必须在一个package ?

cannot use &scheduler.SimpleScheduler literal (type *scheduler.SimpleScheduler) as type engine.Scheduler in field value:
        *scheduler.SimpleScheduler does not implement engine.Scheduler (missing engine.initChan method)
                have scheduler.initChan(chan types.Request)
                want engine.initChan(chan types.Request)

老师,代码中报了这个错误。SimpleScheduler 实现了initChan方法,但是package不对? 这个怎么解决?难道接口和接口的实现必须在一个package

正在回答 回答被采纳积分+3

1回答

ccmouse 2020-05-17 12:46:58

不必须。Go的隐式实现接口带来的一大好处就是接口和实现可以不在同一个package,甚至接口和实现所处的两个package不必互相引用。

这里我们看他说*scheduler.SimpleScheduler does not implement engine.Scheduler (missing engine.initChan method)

是说我们缺少了initChan方法。在SimpleScheduler里把它实现了就可以。

0 回复 有任何疑惑可以回复我~
  • 提问者 198703 #1
    可以是我明明是实现了initChan了啊 
     have scheduler.initChan(chan types.Request)
     want engine.initChan(chan types.Request)
    从报错信息看就是package不同。。。
    回复 有任何疑惑可以回复我~ 2020-05-19 00:12:14
  • 提问者 198703 #2
    找到问题了 initChan 应该是首字母大写,哭笑不得啊。。。。
    回复 有任何疑惑可以回复我~ 2020-05-21 21:43:22
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号