- func:函数由 func 开始声明
- function_name:函数名称,参数列表和返回值类型构成了函数签名。
go语言函数与PHP不同之处在于可以有多个返回值
func multiValues() (int1 int, int2 int) {
return rand.Int(), rand.Int()
}
函数可以作为参数及返回值
//测试函数作为参数及返回值
func TestFunc(t *testing.T) {
var a = f1(1)
fmt.Printf("The result is: %v\n", a(2))
b := f2(f3)
t.Log(b)
}
//可以将函数作为参数及返回值
func f1(op int) func(b int) int {
return func(b int) int {
return op + 2
}
}
func f2(f func(op int) int) int {
return f(100)
}
func f3(op int) int {
return op + 3
}
可变参数
func TestSum(t *testing.T) {
a := Sum(1, 2, 3, 4)
b := Sum(1, 2, 3, 4, 5)
t.Log(a, b)
}
func Sum(ops ...int) int {
ret := 0
for _, v := range ops {
ret += v
}
return ret
}
defer
?
|