闭包的使用

package main

import "fmt"

// 定义一个名为closure的函数,其返回值是“func(int) int”
func closure(bias int) func(int) int {
   // 返回值是一个匿名函数(重要提醒:变量bias和匿名函数是一个整体,称之为闭包)
   return func(i int) int {
      bias = bias + i
      return bias
   }
}

func main() {
   function := closure(10) // 重要说明:变量function此时是一个匿名函数变量。

   fmt.Printf("第1次调用,返回值为:%+v \n", function(1)) // 第1次调用,返回值为:11
   fmt.Printf("第2次调用,返回值为:%+v \n", function(2)) // 第2次调用,返回值为:13
   fmt.Printf("第3次调用,返回值为:%+v \n", function(3)) // 第3次调用,返回值为:16
}

Copyright © 2024 码农人生. All Rights Reserved