Go - Closures
A closure is a function that references variables defined outside of its own scope:
- The closure is created using an anonymous function defined within another function
- The anonymous function can access and assign to variables from the parent function, even after the parent function has returned
- The anonymous function is returned from the parent function
go
// A function that returns a closure.func adder() func(int) int { sum := 0 // Return an anonymous function. return func(x int) int { // Access a variable from the parent function's scope. sum += x return sum }}// Assign the anonymous function to a variable.f := adder()f(1) // 1f(1) // 2f(1) // 3