Go语言结构体(struct)

Go 语言通过用自定义的方式形成新的类型,结构体是类型中带有成员的复合类型。Go 语言使用结构体和结构体成员来描述真实世界的实体和实体对应的各种属性。

结构体成员是由一系列的成员变量构成,这些成员变量也被称为“字段”。字段有以下特性:

  • 字段拥有自己的类型和值。
  • 字段名必须唯一。
  • 字段的类型也可以是结构体,甚至是字段所在结构体的类型。

Go 语言中没有“类”的概念,也不支持“类”的继承等面向对象的概念。Go 语言的结构体与“类”都是复合结构体,但 Go 语言中结构体的内嵌配合接口比面向对象具有更高的扩展性和灵活性。Go 语言不仅认为结构体能拥有方法,且每种自定义类型也可以拥有自己的方法。

定义

type 类型名 struct {
    字段1 字段1类型
    字段2 字段2类型
    …
}
func main() {
	var p Point
	p.X = 10
	p.Y = 10
	q := new(Point)
	q.X = 10
	q.Y = 20
	fmt.Println(q)
}
type Point struct {
	X int
	Y int
}