显示promoted方法的Golang程序
在Golang中,promoted方法指的是一个结构体中的嵌入类型所继承的方法。如果一个结构体嵌入了另一个结构体,那么这个结构体就可以使用嵌入结构体中的方法。在本篇文章中,我们将介绍如何显示显示promoted方法的Golang程序。
示例程序
package main
import "fmt"
type Address struct {
Province string
City string
}
func (a *Address) String() string {
return fmt.Sprintf("省份:%v,城市:%v", a.Province, a.City)
}
type Person struct {
Name string
Age int
*Address
}
func main() {
p := Person{
Name: "张三",
Age: 18,
Address: &Address{
Province: "湖南",
City: "长沙",
},
}
fmt.Println(p.String())
}
在这个示例程序中,我们定义了两个结构体Address和Person。Address表示一个地址,它有一个嵌入类型String()返回一个格式化后的字符串。Person表示一个人,它有Name和Age这两个字段和一个嵌入类型Address。在main()函数中,我们创建了一个Person实例,并调用了它的String()方法。
输出结果如下:
省份:湖南,城市:长沙
我们在Person结构体中嵌入了Address结构体,并没有显示定义String()方法,但是我们依然可以在main()函数中调用它。这是因为String()方法被Address结构体继承了。如果想要显示调用Address结构体中的String()方法,我们可以使用嵌入类型的类型来调用它。
修改代码如下:
fmt.Println(p.Address.String())
输出结果如下:
省份:湖南,城市:长沙
结论
在Golang中,使用嵌入类型可以方便地继承另一个结构体的方法。如果想要显示调用嵌入结构体中的方法,可以通过嵌入类型的类型来调用。
极客笔记