Go支持匿名函数,并能用其构造闭包。匿名函数在你想定义一个不需要命名的内联函数时是很使用的。
intSeq函数返回一个在其函数体内定义的匿名函数。返回的函数使用闭包的方式隐藏变量 i 。返回的函数隐藏变量 i 以行程闭包。
我们调用intSeq函数,将返回值(一个函数)赋给nextInt。这个函数的值包含了自己的值i,这样在每次调用nextInt时,都会更新i的值。
通过多次调用nextInt来看看闭包的效果
为了确认这个状态对于这个特定的函数是唯一的,我们重新创建并测试一下。
结果:
上一篇: 14. 函数之变参函数
下一篇: 16、递归