乐闻世界logo
搜索文章和话题

Golang 如何嵌入结构体?

2月7日 11:02

在Go语言中,嵌入结构体是通过将一个结构体作为另一个结构体的字段但不指定字段名来实现的。这种嵌入的结构体字段会使其内部的字段和方法对外层结构体直接可见。这是一种实现组合的方式,Go语言通过这种方式可以达到类似继承的效果。

例如,如果你有一个Base结构体,你可以在另一个Derived结构体中嵌入Base结构体:

go
type Base struct { Name string } type Derived struct { Base // 嵌入Base结构体 Age int }

在这种情况下,Derived结构体会自动继承Base结构体的所有字段和方法。因此,你可以直接通过Derived的实例访问Name字段,就像下面这样:

go
d := Derived{ Base: Base{Name: "John"}, Age: 30, } fmt.Println(d.Name) // 输出 "John"

这样,Derived结构体实例d可以直接访问Name,尽管这个字段是在Base结构体中定义的。这种方式简化了结构体之间的关系,并可以实现代码的重用和扩展。

标签:Golang