发布时间:2024-12-23 03:56:14
在以下示例中,我们定义了一个名为 changeValue
的函数,它接受一个整型参数 value
:
在这个例子中,函数 changeValue
接受一个整型参数 value
并将其设为 10。然而,在函数内部对参数的修改并不会对原始变量 num
产生任何影响。
下面是一个使用传指针的示例:
```go func changeValue(value *int) { *value = 10 } func main() { num := 5 changeValue(&num) fmt.Println(num) // 输出: 10 } ```在这个例子中,我们定义了一个指针类型的参数 value
,并使用 *
符号获取指针指向的值。在函数内部,我们将指针指向的值设为 10。由于我们传递了 num
的内存地址,函数对其进行修改时会影响到原始变量。
1. 使用传值:
2. 使用传指针:
我们总结了以下示例,以更好地理解这两种方式的用法。
传值示例:
```go func addOne(num int) { num += 1 } func main() { num := 5 addOne(num) fmt.Println(num) // 输出: 5 } ```传指针示例:
```go func addOne(num *int) { *num += 1 } func main() { num := 5 addOne(&num) fmt.Println(num) // 输出: 6 } ```在第一个示例中,使用传值方式将不会改变原始的 num
变量的值。在第二个示例中,使用传指针方式则可以直接修改原始变量的值。