亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

dog 沒有實現寵物(speak 方法的類型錯誤)

dog 沒有實現寵物(speak 方法的類型錯誤)

Go
呼如林 2022-05-10 14:05:21
我自己找不到問題!感謝您的幫助,當我將空結構傳遞給 getPets() 這是一個接口接收器時,我期待結構返回的空引用,但我得到了這個錯誤 **dog 沒有實現寵物(說話的類型錯誤方法)**我無法弄清楚我已經嘗試了 6 個小時import "fmt"type pets interface {    speak(name []byte) dog}type dog struct {    dogs []string    name string}type cat struct {    cats []string    name string}func (d *dog) speak(name []byte) *dog {    (*d).dogs = append(d.dogs, string(name))    return d}// func (c *cat) speak(name []byte) *cat {//  (*c).cats = append(c.cats, string(name))//  return c// }func getPets(f pets) {    fmt.Println(f.speak([]byte("hello")))}func main() {    d := dog{}    getPets(d)
查看完整描述

1 回答

?
肥皂起泡泡

TA貢獻1829條經驗 獲得超6個贊

你的 pets 界面需要一個函數speak(name []byte) dog,但你為 dog 類型編寫的函數是speak(name []byte) *dog.


func (d *dog) speak(name []byte) dog {

    d.dogs = append(d.dogs, string(name))

    return *d

}

或者


type pets interface {

    speak(name []byte) *dog

}


type dog struct {

    dogs []string

    name string

}


func (d *dog) speak(name []byte) *dog {

    d.dogs = append(d.dogs, string(name))

    return d

}

問題是,*dog并且dog是不同的類型。*dog是指向 a 的指針dog。


查看完整回答
反對 回復 2022-05-10
  • 1 回答
  • 0 關注
  • 113 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號