9.12 结构体型

结构体是有限数量元素的集合,这些元素称为字段。每个字段都有一个名称和类型,它们在结构体中的顺序是重要的。

字段名可以明确指定或隐式指定(通过嵌入)。在结构体中,无论位置如何,非空字段名都必须是唯一的,无论它们是显式还是隐式命名的。

结构体类型(命名或非命名)表示具有相同字段声明的所有结构体的集合,也就是字段名、对应类型以及它们的顺序。

在语法上,结构体类型由关键字 struct 定义,其后跟着一系列字段,用角括号({})括起来。例如,

var x struct { latitude, longitude float32 }

此声明引入了名称 x。变量 x 的类型是具有两个字段(纬度和经度)的匿名结构类型,其类型均为 float32。

type point2d struct { x, y int }

此类型定义创建一个新的命名结构类型 point2d。point2d 类型和匿名类型结构 { x, y int } 是两种不同的类型,尽管它们都表示包含两个具有相同名称的 int 字段 x 和 y 的结构。

没有字段的结构是有效的结构:

type Huh struct {}   // Huh 是一个空结构体类型

在 Go 中使用命名的空结构类型将(相关)函数“组织”到方法集中是惯用的。这在本书后面会进一步讨论,例如,在方法一章中。

最后更新于