我正在尝试将指向结构的指针添加到切片,但无法消除此错误:cannot use NewDog() (type *Dog) as type *Animal in append: *Animal is pointer to interface, not interface我怎样才能避免这个错误?(同时仍然使用指针)package mainimport "fmt"type Animal interface { Speak()}type Dog struct {}func (d *Dog) Speak() { fmt.Println("Ruff!")}func NewDog() *Dog { return &Dog{}}func main() { pets := make([]*Animal, 2) pets[0] = NewDog() (*pets[0]).Speak()}
2 回答
呼唤远方
TA贡献1856条经验 获得超11个赞
只需将您的代码更改为:
func main() {
pets := make([]Animal, 2)
pets[0] = NewDog()
pets[0].Speak()
}
接口值已经是一个隐式指针。
- 2 回答
- 0 关注
- 170 浏览
添加回答
举报
0/150
提交
取消