interface
interface指的是抽象,当函数参数限制为某一接口时,实现该接口的所有类型都可以传入123456789101112131415161718192021222324type Person interface{ Say()}type Student struct{ name string}func (s *Student) Say(){ fmt.Println(s.name)}func say(p Person){ p.Say()}func getStudent() Person{ //&Student实现了Person 所以可以返回 return &Student{name:"xiaoming",}}func main(){ p:=getPerson() say(p) //p实现了Person 可直接传入}
struct
相同例子 struct不具有抽象概念,举个例子,即使结构体A嵌套B 但是A扔不能作为B来传入
|
|