Golang 如何实例化结构体指针地址运算符

Golang 如何实例化结构体指针地址运算符

在Golang中,结构体是一种用户自定义的数据类型,它由多个字段组成。结构体实例化通常有两种方式,一种是使用值类型,另一种是使用指针类型。在使用指针类型时,需要使用指针地址运算符”&”来获取结构体实例的地址。本文将介绍如何在Golang中实例化结构体指针地址运算符。

实例化值类型的结构体

在Golang中,实例化值类型的结构体可以使用如下语法:

type Person struct {
    name string
    age  int
}

func main() {
    p := Person{"John", 30}
    fmt.Println(p)
}

上述代码中,我们定义了一个Person结构体,其中包含两个字段:name和age。然后使用Person{“John”, 30}语法实例化一个Person值类型的结构体,并将其赋值给变量p。最后,我们使用fmt.Println(p)输出此结构体的所有字段。

输出结果为:

{John 30}

可以看到,我们成功实例化了一个值类型的Person结构体。

实例化指针类型的结构体

在Golang中,实例化指针类型的结构体需要使用”&”操作符获取结构体的地址。下面是一个实例化指针类型的Person结构体的示例代码:

type Person struct {
    name string
    age  int
}

func main() {
    p := &Person{"John", 30}
    fmt.Println(p)
}

上述代码中,我们使用&Person{“John”, 30}语法获取指向Person结构体实例的指针,并将其赋值给变量p。最后,我们使用fmt.Println(p)输出此结构体实例的地址。

输出结果为:

&{John 30}

可以看到,我们成功实例化了一个指针类型的Person结构体,并输出了其地址。

使用new函数实例化指针类型的结构体

除了使用”&”操作符外,还可以使用new函数来实例化指针类型的结构体。示例代码如下:

type Person struct {
    name string
    age  int
}

func main() {
    p := new(Person)
    p.name = "John"
    p.age = 30
    fmt.Println(p)
}

上述代码中,我们先使用new(Person)函数获取一个指向Person结构体的指针,并将其赋值给变量p。然后,我们使用p.name和p.age来设置其字段值。最后,我们使用fmt.Println(p)输出此结构体实例的地址和字段值。

输出结果为:

&{John 30}

可以看到,我们通过new函数成功实例化了一个指针类型的Person结构体,并设置了其字段值。

结论

在Golang中,实例化结构体指针需要使用”&”操作符或new函数来获取结构体的地址。实例化值类型的结构体比实例化指针类型的结构体更常见。使用指针类型的结构体可以节省内存空间,但需要注意指针的生命周期。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程