匿名函数
func() {
fmt.Println("我是一个匿名函数")
}()
func(a, b int) {
fmt.Printf("%d", a+b)
}(1, 2)
res2 := func(a, b, c int) int {
return a + b + c
}(1, 2, 3)
fmt.Println(res2)
回调函数
func main() {
callback(1,2, func(a int, b int) int {
return a+b
})
}
func callback(a, b int,fun func(int,int)int) {
fmt.Println(a+b,fun(1,3))
}
闭包
func main() {
fmt.Println(close()())
}
func close() func()int {
i := 0
fun := func() int {
i++
return i
}
return fun
}
defer 延迟执行函数 多个defer的时候 先延迟的最后执行 先进后出栈原理
defer 调用函数的时候,就已经传递参数了,只是暂时不执行
defer fun1("hello world")
a:=2
defer fun2( a)
a++
fmt.Println(a)
func fun1(s string) {
fmt.Print(s)
}
func fun2(a int) {
fmt.Println(a)
}
有疑问加站长微信联系(非本文作者)