1 函数
1.1 普通函数
定义
1. 无参数无返回值
func 函数名() {
函数体
}
2. 有参数有返回值并且指定变量名
func 函数名(参数 数据类型) (返回值 数据类型) {
函数体
}
3. 有参数有返回值不指定的变量名
func 函数名(参数 数据类型) 数据类型 {
函数体
}
4. 相同数据类型简写
func 函数名(参数1, 参数2 数据类型) (返回值1, 返回值2 数据类型) {
函数体
}
5. 相同数据类型不定长参数
func 函数名(参数 ...数据类型) 数据类型 {
函数体
}
package main
import "fmt"
func f1() {
fmt.Println("this is f1")
}
func f2(x int) (y int) {
fmt.Printf("this is f2, args: %d\n", x)
return x
}
func f3(x int) int {
fmt.Printf("this is f3, args: %d\n", x)
return x
}
func f4(x, y int) (a, b int) {
fmt.Printf("This is f4, args: %d, %d\n", x, y)
return x, y
}
func f5(x ...int) int {
sum := 0
fmt.Printf("this is f5, args: %v\n", x)
for _, value := range x {
sum += value
}
return sum
}
func main() {
f1()
fmt.Printf("return: %d\n", f2(123))
fmt.Printf("return: %d\n", f3(456))
x1, x2 := f4(123, 456)
fmt.Printf("return: %d, %d\n", x1, x2)
fmt.Printf("return: %d\n", f5(1, 2, 3, 4, 5, 6, 7, 8, 9))
}
输出:
this is f1
this is f2, args: 123
return: 123
this is f3, args: 456
return: 456
This is f4, args: 123, 456
return: 123, 456
this is f5, args: [1 2 3 4 5 6 7 8 9]
return: 45
1.2 匿名函数
匿名函数
func(参数 数据类型) (返回值 数据类型) {
函数体
}
pack