golang中的匿名函数三种用法
阅读原文时间:2023年07月08日阅读:1

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)
}
}