3 回答

TA貢獻(xiàn)1869條經(jīng)驗(yàn) 獲得超4個(gè)贊
具有接口類型的變量已經(jīng)是指針;您不需要將其聲明為指向接口的指針。只要做var a Animal
,它就會(huì)起作用。

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超6個(gè)贊
您必須從界面中刪除指針。
//Animal interface
type Animal interface {
run()
}
//Dog struct
type Dog struct {
name string
}
func (d *Dog) run() {
fmt.Println(d.name, "is running")
}
func main() {
var d *Dog
var a Animal
d = new(Dog)
d.name = "Putty"
d.run()
a = d //errors here
a.run()
}

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超13個(gè)贊
Dog
是一種類型,所以*Dog
是。
Dog
不實(shí)現(xiàn)接口Animal
,但是*Dog
實(shí)現(xiàn)了。
所以var a Animal = new(Dog)
沒(méi)關(guān)系。
- 3 回答
- 0 關(guān)注
- 175 瀏覽
添加回答
舉報(bào)