go 函数调用有两种方式:值传递和引用传递。值传递将变量的副本传递给函数,不影响原始变量的值;引用传递将变量的地址传递给函数,任何修改都将影响原始变量的值。在实战中,add 函数使用值传递,multiply 函数使用引用传递,以不同的方式修改变量的值。

Go 函数的调用方式
在 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
}引用传递
引用传递将一个变量的地址传递给函数,这意味着函数内对该变量的任何修改都会影响原始变量的值。
华友协同办公管理系统(华友OA),基于微软最新的.net 2.0平台和SQL Server数据库,集成强大的Ajax技术,采用多层分布式架构,实现统一办公平台,功能强大、价格便宜,是适用于企事业单位的通用型网络协同办公系统。 系统秉承协同办公的思想,集成即时通讯、日记管理、通知管理、邮件管理、新闻、考勤管理、短信管理、个人文件柜、日程安排、工作计划、工作日清、通讯录、公文流转、论坛、在线调查、
立即学习“go语言免费学习笔记(深入)”;
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(值已修改)
}









