Go 闭包

package main

import (
    "fmt"
)

func main() {
    function := squares()
    fmt.Println(function())
    fmt.Println(function())
    fmt.Println(function())
    fmt.Println(function())
}

func squares() func() int {
    var x int
    return func() int {
        x++
        return x*x
    }
}