golang中的匿名函数三种用法
package main import ( "fmt" "strconv" ) func main() { // 匿名函数的使用:方式1 f1 := func(n1, n2 int) string { return strconv.Itoa(n1 + n2) } ret1 := f1(11, 22) fmt.Println(ret1) // 匿名函数的使用:方式2 ret2, b := func(a, b int) (int, bool) { fmt.Println("哈哈") return a + b, true }(11, 22) fmt.Println(ret2, b) // 匿名函数使用:方式3-闭包 f2 := F1(12, 22) ret3 := f2(88) fmt.Println(ret3) } func F1(n1, n2 int) func(int) string { // 匿名函数使用:方式3,相当于闭包:外函数的返回值是内函数的引用,内函数用到了外函数的变量 return func(i int) string { return strconv.Itoa(n1 + n2 + i) } }