Go函数
函数
函数声明
1 | package main |
运行结果:
注意事项
- 首字母大写为公有,小写为私有(同一个包)。(函数,变量,常量同理)
- 参数为值传递,是拷贝的副本,可以使用指针
1
2
3
4
5
6
7
8
9
10
11
12func swap(a *int, b *int) {
tmp := *a
*a = *b
*b = tmp
return
}
func main() {
a, b := 1, 2
swap(&a, &b)
fmt.Printf("a = %d, b = %d\n", a, b)
}defer 延迟执行
Go语言的defer
语句会将其后面跟随的语句进行延迟处理,在 defer 归属的函数即将返回时,将延迟处理的语句按 defer 的逆序执行 (栈)运行结果:1
2
3
4
5
6
7
8func main() {
//写入defer关键字
defer fmt.Println("main end1")
defer fmt.Println("main end2")
fmt.Println("main::hello go 1")
fmt.Println("main::hello go 2")
}
return 为函数时:
1 | package main |
运行结果:
匿名函数
1 | package main |