函数参数
约 608 字大约 2 分钟
2025-07-08
函数参数
函数如果使用参数,该变量可称为函数的形参。
形参就像定义在函数体内的局部变量。
调用函数,可以通过两种方式来传递参数:
传递类型 | 描述 |
---|---|
值传递 | 值传递是指在调用函数时将实际参数复制 一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数 。 |
引用传递 | 引用传递是指在调用函数时将实际参数的地址 传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数 。 |
值传递
以下定义了 swap() 函数:
/* 定义相互交换值的函数 */
func swap(x, y int) {
x, y = y, x
}
接下来,让我们使用值传递来调用 swap() 函数:
package main
import "fmt"
func main() {
/* 定义局部变量 */
var a int = 100
var b int = 200
fmt.Printf("交换前 a 的值为 : %d\n", a )
fmt.Printf("交换前 b 的值为 : %d\n", b )
/* 通过调用函数来交换值 */
swap(a, b)
fmt.Printf("交换后 a 的值 : %d\n", a )
fmt.Printf("交换后 b 的值 : %d\n", b )
}
/* 定义相互交换值的函数 */
func swap(x, y int) {
x, y = y, x
}
以下代码执行结果为:
交换前 a 的值为 : 100
交换前 b 的值为 : 200
交换后 a 的值 : 100
交换后 b 的值 : 200
引用传递
引用传递指针参数传递到函数内,以下是交换函数 swap() 使用了引用传递:
/* 定义相互交换值的函数 */
func swap(x, y *int) {
*x, *y = *y, *x
}
以下我们通过使用引用传递来调用 swap() 函数:
package main
import "fmt"
func main() {
/* 定义局部变量 */
var a int = 100
var b int = 200
fmt.Printf("交换前 a 的值为 : %d\n", a )
fmt.Printf("交换前 b 的值为 : %d\n", b )
/* 调用 swap() 函数
* &a 指向 a 指针,a 变量的地址
* &b 指向 b 指针,b 变量的地址
*/
swap(&a, &b)
fmt.Printf("交换后 a 的值 : %d\n", a )
fmt.Printf("交换后 b 的值 : %d\n", b )
}
/* 定义相互交换值的函数 */
func swap(x, y *int) {
*x, *y = *y, *x
}
以下代码执行结果为:
交换前 a 的值为 : 100
交换前 b 的值为 : 200
交换后 a 的值 : 200
交换后 b 的值 : 100
贡献者
更新日志
2025/7/8 02:28
查看所有更新日志
d57fb
-go于