Go语言结构体定义

Go语言结构体定义教程

Go 语言结构体 的定义使用 type 关键字类型名加 struct 关键字的形式。结构体中的每一个成员被称为字段,结构体中每一个字段的 类型 可以是 Golang 中的任意类型也可以是结构体类型。

Go语言结构体

定义

type StructName struct { Field1 FieldType1 [Tag1] Field2 FieldType2 [Tag2] Field3 FieldType3 [Tag3] ... }

说明

定义了一个名为 StructName 的结构体,结构体有三个字段,结构体的字段分别为 Field1、Field2 和 Field3,他们的类型分别为 FieldType1、FieldType2 和 FieldType3。

结构体每个字段后面,都可以有一个可选的 Tag,该 Tag 可以用于说明该字段的意义,比如可以通过 Tag 指定结构体序列化为 Json 时,所使用的字段名。

案例

定义基本类型结构体

定义一个名为 Student 的结构体

package main import ( "fmt" ) func main() { fmt.Println("嗨客网(www.haicoder.net)") //定义一个名为 Student 的结构体 type Student struct { Name string Age int Score float64 } var stu Student stu.Name = "kongzi" stu.Age = 1998 stu.Score = 100.0 fmt.Println("Student =", stu) }

程序运行后,控制台输出如下:

02_golang struct.png

我们定义了一个结构体 Student,该结构体定义有三个字段,一个是 string 类型的 Name,一个是 int 类型的 Age,还有一个 float64 类型的 Score。

接着我们定义了一个 Student 结构体定义类型的 变量 stu,并给结构体变量 stu 的三个字段赋值,最后使用 print 打印结构体变量。

定义结构体嵌套结构体

结构体的类型名还可以是一个结构体类型

package main import ( "fmt" ) func main() { fmt.Println("嗨客网(www.haicoder.net)") type Person struct { Name string Age int } // 结构体的类型名还可以是一个结构体类型 type Student struct { P Person Score float64 } var stu Student stu.P.Name = "kongzi" stu.P.Age = 1998 stu.Score = 100.0 fmt.Println("Student =", stu) }

程序运行后,控制台输出如下:

03_golang struct.png

首先,我们定义了一个结构体 Person,该结构体定义有两个字段,一个是 string 类型的 Name,一个是 int 类型的 Age。

接着,我们定义了一个结构体 Student,该结构体也有两个字段,一个是上面定义的结构体 Person 类型的 P,一个是 float64 类型的 Score。

接着我们定义了一个 Student 结构体定义类型的变量 stu,并给结构体变量 stu 的赋值,最后使用 print 打印结构体变量。

Golang结构体定义使用总结

Go 语言中结构体的定义使用 type 关键字类型名加 struct 关键字的形式。结构体中的每一个成员被称为字段,结构体中每一个字段的类型可以是 Golang 中的任意类型也可以是结构体类型。Go 语言结构体定义语法:

type StructName struct { Field1 FieldType1 [Tag1] Field2 FieldType2 [Tag2] Field3 FieldType3 [Tag3] ... }