Go 函数调用有两种方式:值传递和引用传递。值传递将变量的副本传递给函数,不影响原始变量的值;引用传递将变量的地址传递给函数,任何修改都将影响原始变量的值。在实战中,Add 函数使用值传递,Multiply 函数使用引用传递,以不同的方式修改变量的值。
在 Go 语言中,函数调用可以通过值传递和引用传递两种方式实现。
值传递将一个变量的副本传递给函数,这意味着函数内的任何修改都不会影响原始变量的值。
package main import "fmt" func add(x int) int { x++ // 修改 x 的副本 return x } func main() { y := 5 newY := add(y) // 传递 y 的副本 fmt.Println(newY) // 输出 6 fmt.Println(y) // 输出 5 }
引用传递将一个变量的地址传递给函数,这意味着函数内对该变量的任何修改都会影响原始变量的值。
package main import "fmt" func add(x *int) { *x++ // 修改 x 指向的值 } func main() { y := 5 add(&y) // 传递 y 的地址 fmt.Println(y) // 输出 6 }
在以下代码中,我们定义了两个函数:Add
和 Multiply
。Add
使用值传递,而 Multiply
使用引用传递。
package main import "fmt" func Add(x int) { x++ } func Multiply(x *int) { *x *= 2 } func main() { a := 5 Add(a) // 调用 Add,使用值传递 fmt.Println(a) // 输出 5(值不变) b := 10 Multiply(&b) // 调用 Multiply,使用引用传递 fmt.Println(b) // 输出 20(值已修改) }
以上是golang函数的调用方式的详细内容。更多信息请关注PHP中文网其他相关文章!