struct嵌入(go 继承)
type A struct {
name string
id string
}
type B struct {
A
}
func (b *B) String() string {
return b.name
}
在这段代码中,定义了两个结构体 A
和 B
,其中 B
包含了 A
的所有字段和方法。B
结构体还新增了一个 String()
方法,用于返回 B
结构体中的 name
字段。
在 String()
方法中,通过 b.name
访问了 B
结构体中匿名字段 A
中的 name
字段。这是因为在 Go 中,如果结构体中包含了一个或多个匿名字段,那么这些字段的类型和字段名都会被继承到当前结构体中,就好像这些字段是当前结构体的直接字段一样。文章来源:https://www.toymoban.com/news/detail-511829.html
因此,B
结构体中包含了 A
的 name
和 id
字段,以及 A
中的所有方法,所以在 B
结构体中可以直接访问 A
中的 name
字段。文章来源地址https://www.toymoban.com/news/detail-511829.html
到了这里,关于struct嵌入(go 继承)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!