Go基础(闭包_2)
package main
import "fmt"
func adder2(x int) func(int) int {
return func(y int) int {
x += y
return x
}
}
func main() {
var f = adder2(10) // 返回一个 func,功能是返回 y + x (x 已经是10)
fmt.Println(f(10)) // 20 10 + 10
fmt.Println(f(20)) // 40 20 + 20
fmt.Println(f(30)) // 70 40 + 30
f1 := adder2(20) // 返回一个 func,功能是返回 y + x (x 已经是20)
fmt.Println(f1(40)) // 60 20 + 40
fmt.Println(f1(50)) // 110 60 + 50
}