gpt4 book ai didi

带指针的 Go 工厂方法多态性

转载 作者:数据小太阳 更新时间:2023-10-29 03:38:53 24 4
gpt4 key购买 nike

type Foo interface {
FooMethod()
}
type BarFoo struct {
}
func (f *BarFoo) FooMethod() {
}
func NewBarFoo() *Foo {
return &BarFoo{}
}

错误:不能使用“&BarFoo{}”(类型 *BarFoo)作为类型 *Foo

为什么我会收到此类代码的编译错误?多态性是否适用于指针?

顺便说一句,这段代码没问题

func NewBarFoo() Foo {
return &BarFoo{}
}

最佳答案

您只需将函数签名更改为

func NewBarFoo() Foo {
return &BarFoo{}
}

你返回的还是一个指针,恰好指针实现了接口(interface)

关于带指针的 Go 工厂方法多态性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54656970/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com