Golang如何使用结构体指针(代码示例)

【Golang如何使用结构体指针(代码示例)】指针在Golang中是一个变量, 用于存储另一个变量的内存地址。 Golang中的指针也称为特殊变量。变量用于在系统中的特定内存地址存储一些数据。
你也可以使用指向结构。 Golang中的struct是用户定义的类型, 它允许将可能不同类型的项目分组/组合为单个类型。要使用指向结构的指针, 可以使用& 运算符, 即地址运算符。 Golang允许程序员使用指针访问结构的字段, 而无需显式地取消引用。
示例1:在这里, 我们正在创建一个名为Employee的结构, 它具有两个变量。在main函数中, 创建struct的实例, 即emp。之后, 你可以将结构的地址传递给表示结构概念指针的指针。无需显式使用解引用, 因为它将产生与在以下程序中看到的结果相同的结果(两次ABC)。

// Golang program to illustrate the // concept of the Pointer to struct package mainimport "fmt"// taking a structure type Employee struct {// taking variables namestring empid int }// Main Function func main() {// creating the instance of the // Employee struct type emp := Employee{ "ABC" , 19078}// Here, it is the pointer to the struct pts := & empfmt.Println(pts)// accessing the struct fields(liem employee's name) // using a pointer but here we are not using // dereferencing explicitly fmt.Println(pts.name)// same as above by explicitly using // dereferencing concept // means the result will be the same fmt.Println((*pts).name)}

输出如下:
& {ABC 19078} ABC ABC

示例2:你还可以使用指针修改结构成员或结构文字的值, 如下所示:
// Golang program to illustrate the // concept of the Pointer to struct package mainimport "fmt"// taking a structure type Employee struct {// taking variables namestring empid int }// Main Function func main() {// creating the instance of the // Employee struct type emp := Employee{ "ABC" , 19078}// Here, it is the pointer to the struct pts := & emp// displaying the values fmt.Println(pts)// updating the value of name pts.name = "XYZ"fmt.Println(pts)}

输出如下:
& {ABC 19078} & {XYZ 19078}

    推荐阅读