匿名组合
# 匿名组合
结构体嵌入通过组合复用字段和方法。被嵌入类型的方法可提升到外层类型,但外层类型与内层类型仍是两个独立类型。
type AuditFields struct {
CreatedAt time.Time
UpdatedAt time.Time
}
type Service struct {
AuditFields
Name string
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
可以使用 service.CreatedAt 访问提升字段,也能使用 service.AuditFields.CreatedAt 明确来源。只有当“包含”关系稳定且字段提升不会造成歧义时才使用嵌入;业务语义重要时,显式命名字段更清楚。