当前位置: 首页 > article >正文

go 结构体指针

在 Go 语言中,结构体指针用于指向结构体的内存地址。使用结构体指针可以避免在函数调用时复制整个结构体,从而提高性能,特别是当结构体较大时。结构体指针还可以方便地修改结构体的字段。

创建结构体指针的方法:

一 使用new创建结构体指针

type Person struct {
    Name string
    Age  int
}

func main() {
    // 使用 new 函数创建结构体指针
    p := new(Person)
    (*p).Name = "Alice"
    (*p).Age = 30

    fmt.Println(*p) // 输出: {Alice 30}
}
 

因为go底层做了转化,可以直接用 指针.变量 这么使用,相当于一个语法糖,就可以方便结构体调用;转为以后可以直接这么调用。其实质上还是结构体的调用

type Person struct {
    Name string
    Age  int
}

func main() {
    // 使用 new 函数创建结构体指针
    p := new(Person)
    p.Name = "Alice"
    p.Age = 30

    fmt.Println(*p) // 输出: {Alice 30}
}
 

二、使用取地址符 &创建结构体指针

type Person struct {
    Name string
    Age  int
}

func main() {
    // 直接初始化结构体并取地址
    p := &Person{
        Name: "Bob",
        Age:  25,
    }

    fmt.Println(*p) // 输出: {Bob 25}
}
 


http://www.kler.cn/a/408815.html

相关文章:

  • Windows系统运行库软件游戏修复工具
  • QT基础 编码问题 定时器 事件 绘图事件 keyPressEvent QT5.12.3环境 C++实现
  • flatter算法详解
  • Android 设备使用 Wireshark 工具进行网络抓包
  • windows C#-取消任务列表(上)
  • 分公司如何纳税
  • tcpdump抓包 wireShark
  • Android Studio更改项目使用的JDK
  • vscode可以编译通过c++项目,但头文件有红色波浪线的问题
  • 基于YOLOv8深度学习的智慧考场考试防作弊行为检测系统设计与实现(PyQt5界面+数据集+训练代码)
  • VsCode使用git提交很慢(一直显示在提交)_vscode commit很慢解决方法
  • 深入解析PyTorch中的卷积操作:原理、应用与示例
  • URL在线编码解码- 加菲工具
  • Flink——source数据来源分类
  • 线性代数公式速记手册
  • 【超详细】卷积神经网络CNN基本架构以及工作原理详解
  • YB2503HV:高效率降压IC,助力电动车、太阳能设备等领域的能源转换
  • CFD平台如何接入实时行情源
  • 实时数据开发 | 怎么通俗理解Flink容错机制,提到的checkpoint、barrier、Savepoint、sink都是什么
  • Redis入门(六)
  • 【电路设计】基于CD4511的八路抢答器电路解析
  • Kimi模型调用联动前端简单交互页面
  • Spring Boot教程之八:Spring Boot执行器(Actuator)
  • NoteExpress导入知网论文无法智能更新题录的处理方法
  • 修改docker0默认IP地址
  • 字节青训营开课啦