5.1 函数声明
基本语法
func name(parameter-list) (result-list) {
body
}
相同类型的参数可合并书写:
func f(i, j, k int, s, t string)
返回值
返回值可命名,命名后自动初始化为零值。_ 表示忽略参数:
func add(x int, y int) int { return x + y }
func sub(x, y int) (z int) { z = x - y; return }
func first(x int, _ int) int { return x }
func zero(int, int) int { return 0 }
函数签名
函数类型称为签名,由参数类型和返回值类型决定,与变量名无关。上面四个函数签名相同:func(int, int) int。
参数传递
- 无默认参数值,不支持按名传参
- 参数按值传递,形参是实参的拷贝
- 引用类型(指针、slice、map、function、channel)可通过间接引用修改原始数据
- 包含返回值的函数必须以
return结尾