package main import "fmt" func outer() func() int { count := 0 return func() int { count++ return count } } func main() { counter := outer() fmt.Println(counter()) fmt.Println(counter()) fmt.Println(counter()) anotherCounter := outer() fmt.Println(anotherCounter()) fmt.Println(anotherCounter()) }