- 值传递:
- 在值传递过程中,函数会创建参数的一个副本,并将副本传递给函数。这意味着函数内部对参数的操作是在这个副本上进行的,并不会影响到原始数据。
- 例如,当传递一个整数、字符串或结构体等基本类型或复合类型的值给函数时,函数接收到的是该值的一份拷贝。
- 引用传递:
- 引用传递并非 Go 语言中函数参数传递的默认方式(Go 语言没有像 C++ 那样的引用传递语法),但可以通过指针来实现类似的效果。
- 当使用指针传递参数时,函数接收的是变量的内存地址,也就是对原始变量的一个引用。函数内部通过这个指针可以直接访问和修改原始变量的值,所以在函数内部对指针所指向的值进行操作会影响到原始数据。
- 值传递:
- 由于要创建参数的副本,所以在值传递时会占用额外的内存空间,尤其是对于大型的数据结构,创建副本可能会消耗较多的内存资源。
- 例如,如果传递一个包含大量元素的数组作为值传递,那么函数会在内存中另外开辟一块空间来存储这个数组的副本。
- 引用传递(通过指针):
- 传递指针只需要传递变量的内存地址,通常地址的大小是固定的(在 64 位系统中一般为 8 字节),相较于传递大型数据结构的副本,占用的内存空间要少得多。
- 例如,不管是指向一个整数还是一个大型结构体的指针,传递时占用的内存基本就是指针本身的大小,而不是整个被指向数据结构的大小。
posted @
2024-11-29 14:41
仁义礼智信的
阅读(
20)
评论()
编辑
收藏
举报
点击右上角即可分享
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
2023-11-29 PHP性能分析工具
2023-11-29 PHP运行流程
2018-11-29 天气接口