Go结构体
Go的结构体是一种复合类型,它由一系列属性(字段)组成,每个属性(字段)都有自己的类型和值。结构体的字段可以是任何类型,甚至是结构体本身、函数、接口等
在Go中没有类的概念,因此结构体经常被用来替代面向对象中的类的操作
Go结构体的定义
结构体的定义格式如下:
type structName struct {
field1 type1
field2 type2
...
}
下面是一个结构体的实例,首先定义了student
这一结构体,其中包含了name
和id
两个属性。在main
函数中创建了一个student
的实例,并分别为它的两个属性赋值
type student struct{
name string
id int
}
func main(){
s := student{
}
s.id = 1
s.name = "jay"
}
除了上面这种先创建后赋值的方式,也可以用下面的方式创建的同时为结构体的属性赋值
func main(){
a := student{
name: "tom",
id: 2,
}
}
在结构体内嵌使用结构体类型的字段,如下面代码所示,student
结构体中包括了一个person
结构体类型的字段,访问子结构体中的字段时需要一层一层嵌套调用s.p.sex
struct person{
sex int
}
struct