一、语法
声明语法: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和