- Go 教程
- Go - 首页
- Go - 概述
- Go - 环境设置
- Go - 程序结构
- Go - 基本语法
- Go - 数据类型
- Go - 变量
- Go - 常量
- Go - 运算符
- Go - 决策
- Go - 循环
- Go - 函数
- Go - 作用域规则
- Go - 字符串
- Go - 数组
- Go - 指针
- Go - 结构体
- Go - 切片
- Go - 范围
- Go - 映射
- Go - 递归
- Go - 类型转换
- Go - 接口
- Go - 错误处理
- Go 有用资源
- Go - 常见问题解答
- Go - 快速指南
- Go - 有用资源
- Go - 讨论
Go - 传值调用
按值传递函数参数的方法将参数的实际值复制到函数的形式参数中。在这种情况下,在函数内部对参数所做的更改不会影响参数。
默认情况下,Go 编程语言使用按值传递方法传递参数。通常,这意味着函数内的代码无法改变用于调用函数的参数。请考虑如下swap()函数定义。
/* function definition to swap the values */ func swap(int x, int y) int { var temp int temp = x /* save the value of x */ x = y /* put y into x */ y = temp /* put temp into y */ return temp; }
现在,让我们通过传递实际值来调用函数swap(),如下例所示 −
package main import "fmt" func main() { /* local variable definition */ var a int = 100 var b int = 200 fmt.Printf("Before swap, value of a : %d\n", a ) fmt.Printf("Before swap, value of b : %d\n", b ) /* calling a function to swap the values */ swap(a, b) fmt.Printf("After swap, value of a : %d\n", a ) fmt.Printf("After swap, value of b : %d\n", b ) } func swap(x, y int) int { var temp int temp = x /* save the value of x */ x = y /* put y into x */ y = temp /* put temp into y */ return temp; }
将以上代码放在单个 C 文件中,然后编译并执行它。它将产生以下结果 −
Before swap, value of a :100 Before swap, value of b :200 After swap, value of a :100 After swap, value of b :200
这表明值没有变化,尽管它们在函数内部已经被更改。
go_functions.htm
广告