一 图解函数调用
程序员调用方法:给方法必要的输入,方法返回结果。
二 函数调用过程实战
1 传入一个数+1
说明
a 在调用一个函数时,会给该函数分配一个新的空间,编译器会通过自身的处理让这个新的空间和其它的栈的空间区分开来。
b 在每个函数对应的栈中,数据空间是独立的,不会混淆。
c 当一个函数调用完毕后,程序会销毁这个函数对应的栈空间。
2 计算两个数,并返回结果
代码
package main
import (
"fmt"
)
// 一个函数 getSum
func getSum(n1 int, n2 int) int {
sum := n1 + n2
fmt.Println("getSum sum = ", sum) // 30
//当函数有return语句时,就是将结果返回给调用者
//即谁调用我,就返回给谁
return sum
}
func main() {
sum := getSum(10, 20)
fmt.Println("main sum = ", sum) // 30
}
测试
getSum sum = 30
main sum = 30
三 return 语句
1 基本语法
func 函数名 (形参列表) (返回值列表){
执行语句...
return 返回值列表
}
2 说明
a 如果返回多个值,在接收时,希望忽略某个返回值,则使用_符号表示占位忽略。
b 如果返回值只有一个,(返回值列表)可以不写()。
四 实战
1 需求
计算两个数的和和差,并返回结果。
2 代码
package main
import "fmt"
// 计算两个数的和和差,并返回结果
func getSumAndSub(n1 int, n2 int) (int, int) {
sum := n1 + n2
sub := n1 - n2
return sum, sub
}
func main() {
//调用getSumAndSub
res1, res2 := getSumAndSub(1, 2) //res1 = 3 res2 = -1
fmt.Printf("res1=%v res2=%v\n", res1, res2)
//希望忽略某个返回值,则使用 _ 符号表示占位忽略
_, res3 := getSumAndSub(3, 9)
fmt.Println("res3=", res3)
}
3 测试
res1=3 res2=-1
res3= -6
4 说明
希望忽略某个返回值,则使用 _ 符号表示占位忽略。