一、语法
声明语法:func 函数名 (参数列表) [(返回值列表)] {}
二、特点
2.1不支持重载(可以编写多个同名函数,只要它们拥有不同的形参与/或者不同的返回值)
2.2函数可以赋值给变量
2.3多返回值
2.4匿名函数
三、传递方式:
3.1值传递
基本的数据类型是值传递
3.2地址传递(引用传递)
map、slice、chan、指针、interface默认以引用的方式传递
四、返回值命名
package main import "fmt" func main(){ ab,bc,cd := mingmin(3,4) fmt.Println(ab,bc,cd) ab,bc,cd = ismingmin(3,4) fmt.Println(ab,bc,cd) } func mingmin(x1, x2 int)(x3 ,x4 ,x5 int ){ x3 = x1 + x2 x4 = x1 * x2 x5 = x1 - x2 return } func ismingmin(x1, x2 int)(x3,x4,x5 int){ return x1 * x2,x1+x2,x1-x2 }
五、可变参数(重点,难点):
...代表函数可变
package main import "fmt" func main() { x := min(1, 2, 3, 0) fmt.Printf("The minimum is:%d ", x) slice := []int{7, 9, 3, 5, 10} x = min(slice...) fmt.Printf("The minimum in the slice is: %d", x) } func min(s ...int) int { if len(s) == 0 { return 0 } min := s[0] for _, v := range s { if v < min { min = v } } return min }
//输出
The minimum is:0
The minimum in the slice is: 3
六、defef和