为了账号安全,请及时绑定邮箱和手机立即绑定

将指向结构的指针添加到切片

将指向结构的指针添加到切片

Go
UYOU 2021-06-17 10:06:58
我正在尝试将指向结构的指针添加到切片,但无法消除此错误: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()

}

接口值已经是一个隐式指针。


查看完整回答
反对 回复 2021-06-21
  • 2 回答
  • 0 关注
  • 170 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信