Go has closures
Function literals are indeed closures.
func adder() (func(int) int) {
var x int
return func(delta int) int {
x += delta
return x
}
}
f := adder()Prints 1 21 321 - accumulating in f's x.
fmt.Print(f(1))
fmt.Print(f(20))
fmt.Print(f(300))
Comments
Post a Comment