Golang 函数参数的传递方式 值传递,引用传递

基本介绍


我们在讲解函数注意事项和使用细节时,已经讲过值类型和引用类型了,这里我们再系统总结一下,因为这是重难点,值类型参数默认就是值传递,而引用类型参数默认就是引用传递。

两种传递方式(函数默认都是值拷贝)


1)值传递(针对基本数据类型,在传递参数的时候进行了值拷贝)

2)引用传递(传递的是一个地址)

其实,不管是值传递还是引用传递,传递给函数的都是变量的副本,不同的是,值传递的是值的拷贝,引用传递的是地址的拷贝,一般来说,地址拷贝效率高,因为数据量小,而值拷贝决定拷贝的数据大小,数据越大,效率越低。

结构体默认是值拷贝,那么就会拷贝一个很大的数,这样效率就低下,如果传递的是结构体的地址。那么效率就会很高。区别主要在于效率的问题。

值类型和引用类型


1)值类型:基本数据类型int系列,float系列,bool, string、数组和结构体struct

2)引用类型:指针、slice切片、map、管道chan、interface等都是引用类型

相关推荐
HotCoffee-GPS12 小时前
Golang学习笔记:定时crontab
golang
q***188418 小时前
搭建Golang gRPC环境:protoc、protoc-gen-go 和 protoc-gen-go-grpc 工具安装教程
开发语言·后端·golang
码上淘金1 天前
在 YAML 中如何将 JSON 对象作为字符串整体赋值?——兼谈 Go Template 中的 fromJson 使用
java·golang·json
小生凡一2 天前
图解|Go语言实现 Agent|LLM+MCP+RAG
开发语言·后端·golang
pipip.2 天前
Go原生高性能内存网关IMS,比Redis更快
开发语言·redis·golang
q***06292 天前
环境安装与配置:全面了解 Go 语言的安装与设置
开发语言·后端·golang
月屯2 天前
平台消息推送(go)
数据库·后端·golang·cocoa·iphone·gin
百锦再2 天前
第11章 泛型、trait与生命周期
android·网络·人工智能·python·golang·rust·go
hweiyu002 天前
Go Fiber 简介
开发语言·后端·golang
周杰伦_Jay2 天前
【智能体(Agent)技术深度解析】从架构到实现细节,核心是实现“感知环境→处理信息→决策行动→影响环境”的闭环
人工智能·机器学习·微服务·架构·golang·数据挖掘