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

基本介绍


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

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


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

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

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

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

值类型和引用类型


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

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

相关推荐
ttwuai10 小时前
Go后台管理系统开源项目:4个官方仓库怎么追溯和核验
开发语言·golang·开源
谢亮_vipxieliang10 小时前
Go Worker Pool 设计——从原理到生产级实现
开发语言·后端·golang
谢亮_vipxieliang11 小时前
Go Channel 高级模式——从底层原理到扇出扇入实战
java·数据库·golang
谢亮_vipxieliang13 小时前
Go WaitGroup与Once——并发同步的基石
开发语言·后端·golang
JWASX14 小时前
Java 转 go 学习 - GRPC(1)
学习·golang
北冥you鱼14 小时前
Go 语言 Channel 机制详解:从原理到实战
开发语言·后端·golang
谢亮_vipxieliang14 小时前
Go 并发控制进阶:sync 包高级原语与 Context 生命周期管理
开发语言·后端·golang
谢亮_vipxieliang15 小时前
Go GMP调度模型——从原理到实战的完整指南
开发语言·网络·golang
谢亮_vipxieliang16 小时前
Go Context 控制协程生命周期
开发语言·golang
JWASX16 小时前
Java 转 go 学习 - kitex(2)
学习·golang