📅  最后修改于: 2023-12-03 15:08:37.100000             🧑  作者: Mango
当需要初始化一个新的结构体类型变量时,可以使用内置的 new()
函数。new()
函数会在内存中分配一个零值的内存空间,并返回其指针。
package main
import "fmt"
type Person struct {
Name string
Age int
}
func main() {
// 实例化一个新的 Person 结构体类型变量
p := new(Person)
fmt.Println(p) // 输出:&{ 0}
}
在上述示例中,我们定义了一个结构体类型 Person
,其包含 Name
和 Age
两个字段。接着,通过调用 new()
函数实例化了一个新的 Person
变量 p
。由于此时结构体类型变量 p
还没有被初始化,因此输出结果为其零值:&{ 0}
。
需要注意的是,通过 new()
函数实例化的结构体类型变量,其所有字段都将被初始化为其零值。如果需要初始化具有初始值的结构体类型变量,可以使用以下语法:
package main
import "fmt"
type Person struct {
Name string
Age int
}
func main() {
// 初始化一个新的 Person 结构体类型变量
p := Person {
Name: "Alice",
Age: 18,
}
fmt.Println(p) // 输出:{Alice 18}
}
在上述示例中,我们使用结构体字面量语法,给 Person
结构体类型变量 p
的 Name
和 Age
两个字段分别赋值为字符串 "Alice"
和整数 18
。最后,我们输出了变量 p
的值,即 {Alice 18}
。