接口和接口的实现必须在一个package ?
来源:16-2 简单调度器

198703
2020-05-10
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
写回答
1回答
-
ccmouse
2020-05-17
不必须。Go的隐式实现接口带来的一大好处就是接口和实现可以不在同一个package,甚至接口和实现所处的两个package不必互相引用。
这里我们看他说*scheduler.SimpleScheduler does not implement engine.Scheduler (missing engine.initChan method)
是说我们缺少了initChan方法。在SimpleScheduler里把它实现了就可以。
022020-05-21
相似问题