Golang struct当方法被重载时调用嵌入式类型方法
发布时间:2020-12-16 09:40:50 所属栏目:大数据 来源:网络整理
导读:我试图学习Go,我找到了一个很好的资源 here。 下面给出了方法重载的例子: package mainimport "fmt"type Human struct { name string age int phone string}type Employee struct { Human company string}func (h *Human) SayHi() { fmt.Printf("Hi,I am %
我试图学习Go,我找到了一个很好的资源
here。
下面给出了方法重载的例子: package main import "fmt" type Human struct { name string age int phone string } type Employee struct { Human company string } func (h *Human) SayHi() { fmt.Printf("Hi,I am %s you can call me on %sn",h.name,h.phone) } func (e *Employee) SayHi() { fmt.Printf("Hi,I am %s,I work at %s. Call me on %sn",e.name,e.company,e.phone) //Yes you can split into 2 lines here. } func main() { sam := Employee{Human{"Sam",45,"111-888-XXXX"},"Golang Inc"} sam.SayHi() } 可以调用“base”结构体(Human)的方法,例如。 sam.Human.SayHi()下转不工作(因为没有类型层次结构?)
您可以通过使用嵌入类型名称的名称调用父成员来访问父结构的嵌入式结构。这是一个口,所以它可能更容易展示它。
sam := Employee{Human{"Sam","Golang Inc"} sam.SayHi() // calls Employee.SayHi sam.Human.SayHi() // calls Human.SayHi 输出 Hi,I am Sam,I work at Golang Inc. Call me on 111-888-XXXX Hi,I am Sam you can call me on 111-888-XXXX (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |