京东云服务器推荐配置、多种配置选择,满足不同业务需求!

热门推荐

⭐ 稳定入门选择

配置:2核2G/5M

适用场景:个人站点 / 轻量应用

特点:性价比高,稳定可靠

¥19/月
立即购买
流量友好

☁️ 轻量云主机

配置:2核4G 5M

适用场景:小型业务 / 博客 / 测试环境

特点:流量友好,性能均衡

¥149/年
立即购买
高性能

💻 云服务主机

配置:4核16G 8M

适用场景:中小型服务 / 多并发场景

特点:充足内存与带宽,性能强劲

¥750/年
立即购买
新人专享

🎁 新人福利

新人访问 → 点击 → 最新活动

可获取 3000元 礼券

立即领取
服务端 / Golang 教程 / Golang 指针
Go 结构体和指针
Go 语言指针比较Go 数组和指针

Go 语言结构体和指针

您也可以使用指向struct的指针。Golang中的struct(结构体)是用户定义的类型,它允许将可能不同类型的项目分组/组合为单个类型。要使用指向结构的指针,可以使用运算符,即地址运算符。Golang允许程序员使用指针访问结构的字段,而无需显式地解引用。

示例1:在这里,我们创建了一个名为Employee的结构,它有两个变量。在main函数中,创建结构体的实例,即emp,然后,你可以将结构体的地址传递给表示结构体概念的指针。没有必要显式地使用解引用,因为它会给出与下面程序相同的结果(两次ABC)。

package main

import "fmt"

//定义结构体
type Employee struct {

    //设置字段
    name  string
    empid int
}

func main() {

    //创建的实例
    //员工结构体类型
    emp := Employee{"ABC", 19078}

    //在这里,它是指向结构体的指针
    pts := &emp

    fmt.Println(pts)

    //访问结构字段(员工的姓名)
    //使用指针,但是这里我们没有使用显式解引用
    fmt.Println(pts.name)

    //通过显式使用解引用
    //表示结果与上面相同
    fmt.Println((*pts).name)

}

输出:

&{ABC 19078}
ABC
ABC

示例2:您还可以使用指针,如下所示修改结构成员或结构字面量的值:

package main

import "fmt"

//定义结构体
type Employee struct {
    name  string
    empid int
}

func main() {

    //创建的实例
    //员工结构类型
    emp := Employee{"ABC", 19078}

    //在这里,它是指向结构体的指针
    pts := &emp

    //显示值
    fmt.Println(pts)

    //更新name的值
    pts.name = "XYZ"

    fmt.Println(pts)

}

输出:

&{ABC 19078}
&{XYZ 19078}
Go 语言指针比较Go 数组和指针
上一篇:Go 数组和指针