一、函数调用的机制和原则:
- 当编译器执行调用函数时,就会开辟一个新的数据空间,
- 该空间的独立[是编译器处理]
- 各个数据空间在栈中。
二、通过案例,画出示意图理解函数调用过程
1、实现:函数使用传入一个数+1
package main
import (
"fmt"
)
func test(n1 int) {
n1++
fmt.Println("n1=", n1) // 11
}
func main() {
n1 := 10
test(n1)
}
2、计算两个数,并返回
package main
import (
"fmt"
)
func getSum(n1 int, n2 int) int {
sum := n1 + n2
return sum
}
func main() {
sum := getSum(1, 2)
}
三、基本语法
Go函数支持返回多个值,这一点是其它编程语言没有的。
func 函数名(形参列表)(返回值类型列表){
语句...
return 返回值列表
}
说明:
如果返回多个值时,在接收时,希望忽略某个返回值,则使用 _ 符号表示占位忽略
如果返回值只有一个,(返回值类型列表) 可以 不写 ()。
案例代码:
package main
import (
"fmt"
)
func getSumAndSub(n1 int, n2 int) (int, int) {
sum := n1 + n2
sub := n1 - n2
return sum, sub //注意顺序
}
func main() {
sum, sub := getSumAndSub(2, 8)
fmt.Printf("sum=%d sub=%d", sum, sub)
sum, _ = getSumAndSub(10, 8)
fmt.Printf("sum=%d", sum)
}