为了账号安全,请及时绑定邮箱和手机立即绑定

从不同的包golang实现接口

从不同的包golang实现接口

Go
扬帆大鱼 2021-03-29 13:15:08
我在尝试实现接口(在golang的其他程序包中定义)时遇到了一些问题。我对下面的问题做了些微的阐述界面:package interfacestype Interface interface {    do(param int) int}执行:package implementationstype Implementation struct{}func (implementation *Implementation) do(param int) int {    return param}Main.go:package mainimport (    "test/implementing-interface-in-different-package/implementations"    "test/implementing-interface-in-different-package/interfaces")func main() {    var interfaceImpl interfaces.Interface    interfaceImpl = &implementations.Implementation{}}错误信息:test/implementing-interface-in-different-package./main.go:10:16: cannot use implementations.Implementation literal (type implementations.Implementation) as type interfaces.Interface in assignment:    implementations.Implementation does not implement interfaces.Interface (missing interfaces.do method)            have implementations.do(int) int            want interfaces.do(int) int是否可以从其他包中实现接口?
查看完整描述

1 回答

?
森林海

TA贡献2011条经验 获得超2个赞

问题在于您的do函数没有从implementations包中导出,因为它以小写字母开头。因此,从包的角度来看main,变量interfaceImpl无法实现接口,因为它看不到do函数。

重命名您的接口函数为大写字母Do以解决此问题。


查看完整回答
反对 回复 2021-04-19
  • 1 回答
  • 0 关注
  • 985 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信