内嵌的结构体如何调用其外部结构体的方法?

flyinmysky · · 1607 次点击
```go package main import "fmt" type IAnimal interface { Run() } type Animal struct{} func (a *Animal) Escape(ianimal IAnimal) { ianimal.Run() } func (a *Animal) Run() { fmt.Printf("Animal Run.\n") } type Dog struct { s Animal } func (d *Dog) Run() { fmt.Printf("Dog Run.\n") } func main() { dog := &Dog{} dog.s.Escape(dog) ad:=&Animal{} ad.Escape(ad) } ``` //输出 //Dog Run. //Animal Run.
#8
更多评论
我记得反射的情况下,如果是一个结构实现了一个接口,可以用强制转换成接口在调用接口方法
#1
这样的想法下,你的Dog也要实现一个Escape才可能实现吧。。。
#2