type Foo interface {
FooMethod()
}
type BarFoo struct {
}
func (f *BarFoo) FooMethod() {
}
func NewBarFoo() *Foo {
return &BarFoo{}
}
错误: 不能将'&BarFoo {}'(* BarFoo类型)用作* Foo
类型为什么我会收到此类代码的编译错误?多态性对指针有效吗?
顺便说一句,此代码很好
func NewBarFoo() Foo {
return &BarFoo{}
}
答案 0 :(得分:3)
您只需要将功能签名更改为
func NewBarFoo() Foo {
return &BarFoo{}
}
您仍在返回一个指针,恰好该指针实现了接口