可以使用指针或值接收器传递参数给 go 函数实现对原始数据的修改。指针传递使用星号 () 传递指针,函数处理原始数据地址;值接受器使用两个星号 (*) 传递原始数据的副本。使用指针和值接收器传递参数的示例代码如下:使用指针传递参数:changevalue(&num);使用值接收器传递参数:changevalue(&num);
如何通过引用传递参数给 Golang 函数?
在 Go 语言中,可以通过引用传递参数来实现对原始数据的修改。这样做可以避免创建新副本,从而提高效率。
指针传递
使用指针来传递参数是最常见的方式。当传递指针时,函数实际上是在处理原始数据的地址。要传递指针,需要在参数类型前面加上星号(*)。
func changeValue(n *int) {
*n = 10
}
值接受器
另一种传递参数的方式是使用值接收器。在这种情况下,函数实际上接收了原始数据的副本。要使用值接收器,在参数类型前面加上两个星号(**)。
立即学习“go语言免费学习笔记(深入)”;
func changeValue(n **int) {
*n = &10
}
实战案例
以下实战案例演示了如何使用指针和值接收器传递参数:
package main
import "fmt"
func main() {
// 创建一个整数变量
num := 5
// 使用指针传递参数
changeValue(&num)
fmt.Println("Value after pointer change:", num) // 输出:10
// 使用值接收器传递参数
changeValue(&num)
fmt.Println("Value after value receiver change:", num) // 输出:10
}
// 通过指针传递参数
func changeValue(n *int) {
*n = 10
}
// 通过值接收器传递参数
func changeValue(n **int) {
*n = &10
}