📜  如何在 Golang 中使用 new 关键字实例化 Struct?(1)

📅  最后修改于: 2023-12-03 15:08:37.100000             🧑  作者: Mango

在 Golang 中使用 new 关键字实例化 Struct

当需要初始化一个新的结构体类型变量时,可以使用内置的 new() 函数。new() 函数会在内存中分配一个零值的内存空间,并返回其指针。

package main

import "fmt"

type Person struct {
    Name string
    Age  int
}

func main() {
    // 实例化一个新的 Person 结构体类型变量
    p := new(Person)
    fmt.Println(p) // 输出:&{ 0}
}

在上述示例中,我们定义了一个结构体类型 Person,其包含 NameAge 两个字段。接着,通过调用 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 结构体类型变量 pNameAge 两个字段分别赋值为字符串 "Alice" 和整数 18。最后,我们输出了变量 p 的值,即 {Alice 18}