これが私のコードです:
type IA interface {
FB() IB
}
type IB interface {
Bar() string
}
type A struct {
b *B
}
func (a *A) FB() *B {
return a.b
}
type B struct{}
func (b *B) Bar() string {
return "Bar!"
}
エラーが発生します:
cannot use a (type *A) as type IA in function argument:
*A does not implement IA (wrong type for FB method)
have FB() *B
want FB() IB
完全なコードは次のとおりです: http://play.golang.org/p/udhsZgW3W2 IAインターフェイス
を編集するか、 A構造体を変更する必要がありますか?
他のパッケージで IA、IB を定義する場合 (これらのインターフェースを共有できるようにするため)、自分のパッケージをインポートして IB を A.FB() の戻り型として使用する必要がありますが、それは正しいですか?