go - Flamingo:结构不可分配给接口
问题描述
我正在使用火烈鸟来构建应用程序。我的源代码中有一个模块,其结构如下所示。
some_interface.go
package something
type SomeInterface interface {
someMethod()
}
some_struct.go
package something
type SomeStruct struct {
}
func(s *SomeStuct) someMethod() {
}
在某些模块中绑定
package something
type Module struct{}
func (*Module) Configure(injector *dingo.Injector) {
injector.BindMulti(new(SomeInterface)).To(new(SomeStruct))
}
当我运行时go run main.go serve
,我收到以下错误
panic: something#SomeStruct not assignable to something#SomeInterface
更新
这只发生在我的界面中有方法时。如果我从我的界面中删除该方法。它似乎工作。
解决方案
我的错。找到了解决方案。接口方法应该被导出。
some_interface.go
package something
type SomeInterface interface {
someMethod()
}
some_struct.go
package something
type SomeStruct struct {
}
func(s *SomeStuct) someMethod() {
}
推荐阅读
- android - 将项目上传到 GitHub 时重复项目文件夹
- python-3.x - 运行时错误 R6034,在 Windows 7 上为 Python3 安装 OpenCV 后
- swift - 具有长 JSON 数据的多个 Alamofire 请求问题
- python - Python:find_all 仅适用于某些标签
- django - Django queries using a list
- uwp - UWP BitmapImage.Source - 网络 Uri 工作,但本地磁盘 Uri 不工作
- r - 闪亮:当 eventReactive 函数将另一个 eventReactive 函数的输出作为输入时,ignoreNULL 不起作用?
- java - 分类器和下游和只使用分类器有什么区别
- python - 与重复索引合并 - 行数大于预期
- c++ - 如何组织与两个对象有关的变量