35 lines
529 B
Go
35 lines
529 B
Go
|
package main
|
||
|
|
||
|
import "fmt"
|
||
|
|
||
|
func main() {
|
||
|
// 立即执行的匿名函数
|
||
|
func(msg string) {
|
||
|
fmt.Println(msg)
|
||
|
}("立即执行的匿名函数")
|
||
|
|
||
|
// 将匿名函数赋值给变量
|
||
|
greet := func(name string) {
|
||
|
fmt.Printf("Hello, %s!\n", name)
|
||
|
}
|
||
|
greet("Gopher")
|
||
|
|
||
|
// 闭包示例
|
||
|
adder := func() func(int) int {
|
||
|
sum := 0
|
||
|
return func(x int) int {
|
||
|
sum += x
|
||
|
return sum
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// 使用闭包
|
||
|
pos, neg := adder(), adder()
|
||
|
for i := 0; i < 5; i++ {
|
||
|
fmt.Println(
|
||
|
"pos:", pos(i),
|
||
|
"neg:", neg(-2*i),
|
||
|
)
|
||
|
}
|
||
|
}
|