可以先定义和接口, 然后man和human去实现这个接口
type Person struct {
}
type P interface {
p(a Person)
}
type Man struct {
}
func (m *Man) p(a Person) {
}
type Human struct {
}
func (m *Human) p(a Person) {
}
实现接口的这种方式, 当一个有一个函数参数是P时, 传的参可以是Man,也可以是Human, 通过实现同一个接口实现多态
func person(p P) {
}
如果只是单纯的想要给struct添加方法, 下面就可以
type Man struct {
}
func (m *Man) p(a Person) {
}
type Human struct {
}
func (m *Human) p(a Person) {
}