阅读背景:

golang:匿名函数作为返回值_大笑。的博客_golang 函数作为返回值

来源:互联网 

匿名函数作为返回值时,里层的函数可以使用外层的函数中的变量。

package main

import "fmt"

func squares() func() int {
   var x int
   fmt.Println("11", x)
   return func () int {
      fmt.Println("22", x)
      x += 2
      return x*x
   }
}

func main() {

   f := squares()  
   // f = main.squares.func1
   fmt.Println(f())  // 4
   // 调用main.squares.func1
   fmt.Println(f())
}
执行结果:
11 0 // squares()的输出
22 0 // f()的输出
4 //  fmt.Println(f()) 的输出
22 2
16
package



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: