提问人:mjeesh 提问时间:11/18/2023 更新时间:11/18/2023 访问量:25
不能使用“实体”。NewCat(“Cat”)' (type *Cat) 作为类型 *entity。动物 [复制]
Cannot use 'entity.NewCat("Cat")' (type *Cat) as the type *entity.Animal [duplicate]
问:
我有动物接口和几个子类型。如何制作具有接口类型的切片并放入其中的子类型?
这是我试图做的
package main
import "awesomeProject/cmd/main/animal/entity"
func main() {
animals := make([]*entity.Animal, 4)
for i := range animals {
animals[i] = entity.NewCat("Cat")
}
}
接口的子类型
package entity
type Cat struct {
name string
}
func (c Cat) GetName() string {
return c.name
}
func NewCat(name string) *Cat {
return &Cat{
name: name,
}
}
接口
package entity
type Animal interface {
GetName() string
}
答: 暂无答案
评论
entity.Animal
是一个接口,你不需要指向接口的指针。go.dev/doc/faq#pointer_to_interface