package main import "fmt" func main() { a := 10 b := 20 defer func() { fmt.Printf("a = %d, b = %d\n", a, b) }() a = 111 b = 222 fmt.Printf("a = %d, b = %d\n", a, b) } 执行后得到以下的结果,需要注意以下: 1.defer的匿名函数是在整个函数执行结束前的一瞬间执行的,即延时执行 2.…
1.匿名函数结合使用 示例1: package main //必须 import "fmt" func main() { a := 10 b := 20 defer func() { fmt.Printf("a = %d, b = %d\n", a, b) }() //()代表调用此匿名函数 //先执行外部的,再执行内部的 a = 111 b = 222 fmt.Printf("外部:a = %d, b = %d\n", a, b) } 执行结果…
匿名函数和字面量函数一样, 凡是可以使用字面量函数的地方,都可以用匿名函数代替. 这个和js中的匿名函数差不多吧. package main import "fmt" var sum = func(a, b int) int { return a + b } func doinput(f func(int, int) int, a, b int) int { return f(a, b) } func wrap(op string) func(int, int) int { switc…
匿名函数 1. 函数也是一种类型,因此可以定义作为一个函数类型的变量 package main import "fmt" // 函数作为参数 func add(a, b int) int { return a + b } func testfunc(a, b int, fun func(int, int) int) int { sum := fun(a, b) return sum } func main() { sum := testfunc(, , add) fmt.Println…
一.函数可赋值给一个变量 示例1: package main import "fmt" func add(a, b int) int { return a + b } func main() { xx := add fmt.Println(xx(10, 10)) // 20 } 示例2: package main import "fmt" // opFunc为自定义的类型名字,这里它是一个函数,接收两个值,返回一个值 type opFunc func(int, in…