closure.go 316 B

12345678910111213141516171819202122
  1. package main
  2. import "fmt"
  3. func outer() func() int {
  4. count := 0
  5. return func() int {
  6. count++
  7. return count
  8. }
  9. }
  10. func main() {
  11. counter := outer()
  12. fmt.Println(counter())
  13. fmt.Println(counter())
  14. fmt.Println(counter())
  15. anotherCounter := outer()
  16. fmt.Println(anotherCounter())
  17. fmt.Println(anotherCounter())
  18. }