func(c *Cat) Speak() string {    return"Meow!"}

  

运行上述代码,会得到如下错误:

cannot use Cat literal (typeCat) as typeAnimal in array or slice literal:    Cat does not implement Animal (Speak method has pointer receiver)

  

CatAnimal*Catnew(Cat)&Cat{}
animals := []Animal{Dog{}, new(Cat), Llama{}, JavaProgrammer{}}

 

*DogDogSpeak()
animals := []Animal{new(Dog), new(Cat), Llama{}, JavaProgrammer{}}

  

*DogDogSpeak()Cat*Catfunc(t T)MyMethod(s string) {    // ...} func(T, string)*CatCatCat*CatCat*CatDog*DogGogd->Speak()interface{}interface{}(type, value)interface{}interface{}*