首页 > 解决方案 > 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

更新

这只发生在我的界面中有方法时。如果我从我的界面中删除该方法。它似乎工作。

标签: godependency-injection

解决方案


我的错。找到了解决方案。接口方法应该被导出

some_interface.go

package something

type SomeInterface interface {
    someMethod()
}

some_struct.go

package something

type SomeStruct struct {
}

func(s *SomeStuct) someMethod() {
}

推荐阅读