golang实现了匿名函数和闭包,这就意味着你可以在内部代码块使用外部环境变量。
package main
import (
"fmt"
)
func main() {
//尾部加括号传入参数直接执行
sum := func(a, b int) int {
return a + b
}(3, 4)
fmt.Println(sum)
//赋值给变量时使用
f := func(i, j int) (result int) {
result = i + j
return result
}
fmt.Println(f(1, 3))
var j int = 5
a := func() func() {
var i int = 10
return func() {
fmt.Printf("i, j: %d, %d\n", i, j)
}
}()
a()
j *= 2
a()
}