Go语言中的方法、类型组合与封装
1. 通过结构体嵌入组合类型
在Go语言里,结构体嵌入是一种强大的特性,它能让我们构建复杂类型。比如 ColoredPoint 类型:
import "image/color"
type Point struct{ X, Y float64 }
type ColoredPoint struct {
Point
Color color.RGBA
}
我们本可以将 ColoredPoint 定义为包含三个字段的结构体,但这里嵌入了 Point 来提供 X 和 Y 字段。借助嵌入,我们能以简便的语法定义 ColoredPoint ,它包含 Point 的所有字段,还能添加更多字段。
我们可以不提及 Point 来选择 ColoredPoint 中由嵌入的 Point 贡献的字段:
var cp ColoredPoint
cp.X = 1
fmt.Println(cp.Point.X) // "1"
cp.Point.Y = 2
fmt.Println(cp.Y) // "2"
类似地,对于 Point 的方法
超级会员免费看
订阅专栏 解锁全文
738

被折叠的 条评论
为什么被折叠?



