Go 语言 中 结构体 定义完之后,并不能直接使用,因此此时还没有分配内存,因此,我们必须在定义完结构体,并实例话之后才可以使用结构体。
Golang 中结构体的实例化主要有三种方式,分别为:使用 变量 定义的方式、使用 new 分配内存和使用 & 符号定义结构体。
var varName StructName
参数 | 描述 |
---|---|
var | 定义结构体变量使用的关键字。 |
varName | 结构体变量名。 |
StructName | 结构体类型名。 |
使用 var 关键字定义一个名为 StructName 的结构体变量 varName,后续我们就可以直接使用该变量。
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)
}
程序运行后,控制台输出如下:
我们定义了一个结构体 Student,该结构体实例化有三个字段,一个是 string 类型的 Name,一个是 int 类型的 Age,还有一个 float64 类型的 Score。
接着我们使用 var 实例化了一个 Student 结构体实例化类型的变量 stu,并给结构体变量 stu 的三个字段赋值,最后使用 print 打印结构体变量。
使用 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)
}
程序运行后,控制台输出如下:
我们定义了一个结构体 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)
}
程序运行后,控制台输出如下:
我们定义了一个结构体 Student,接着,使用 & 符号初始化了一个结构体类型的变量 stu,并为该变量赋值,打印该变量。
Golang 中结构体的实例化主要有三种方式,分别为:使用变量定义的方式、使用 new 分配内存和使用 & 符号定义结构体。使用变量定义的方式:
var varName StructName
使用 new 分配内存的方式:
var varName = new(StructName)
使用 & 符号定义结构体:
var varName = &StructName{}