Go语言结构体实例化

Go语言结构体实例化教程

Go 语言结构体 定义完之后,并不能直接使用,因此此时还没有分配内存,因此,我们必须在定义完结构体,并实例话之后才可以使用结构体。

Golang 中结构体的实例化主要有三种方式,分别为:使用 变量 定义的方式、使用 new 分配内存和使用 & 符号定义结构体。

变量定义方式

语法

var varName StructName

参数

参数 描述
var 定义结构体变量使用的关键字。
varName 结构体变量名。
StructName 结构体类型名。

说明

使用 var 关键字定义一个名为 StructName 的结构体变量 varName,后续我们就可以直接使用该变量。

new分配内存方式

语法

var varName = new(StructName)

说明

使用 new 关键字为变量 varName 分配内存。

&符号定义结构体

语法

var varName = &StructName{}

说明

使用 & 定义一个名为 varName 的结构体,使用 & 符号定义时,结构体名后面必须要加 {}。

案例

使用变量定义的方式

使用变量定义的方式,实例化一个名为 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) }

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

04_golang结构体struct实例化.png

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

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

使用new分配内存的方式

使用 new 分配内存的方式,实例化一个名为 Student 的结构体

package main import ( "fmt" ) func main() { fmt.Println("嗨客网(www.haicoder.net)") //使用new分配内存的方式,实例化一个名为 Student 的结构体 type Student struct { Name string Age int Score float64 } var stu = new(Student) stu.Name = "kongzi" stu.Age = 1998 stu.Score = 100.0 fmt.Println("Student =", stu) }

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

06_golang结构体struct实例化.png

我们定义了一个结构体 Student,接着,使用 new 分配内存的方式定义了一个结构体类型的变量 stu,并为该变量赋值,打印该变量。

使用&符号定义结构体

使用 & 符实例化结构体 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) }

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

07_golang结构体struct初始化.png

我们定义了一个结构体 Student,接着,使用 & 符号初始化了一个结构体类型的变量 stu,并为该变量赋值,打印该变量。

Golang结构体实例化使用总结

Golang 中结构体的实例化主要有三种方式,分别为:使用变量定义的方式、使用 new 分配内存和使用 & 符号定义结构体。使用变量定义的方式:

var varName StructName

使用 new 分配内存的方式:

var varName = new(StructName)

使用 & 符号定义结构体:

var varName = &StructName{}