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

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