Go 快速入门指南 - 闭包

概述

闭包的概念参考 闭包 - 维基百科)

例子

自增序列号生成器

package main

import "fmt"

// 自增序列号生成器
func incSeq() func() int {
    i := 0
    return func() int {
        i++
        return i
    }
}

func main() {
    next := incSeq()

    fmt.Printf("初始值 = %d\n", next())

    for i := 1; i <= 5; i++ {
        fmt.Printf("第 %d 次迭代后, 值 = %d\n", i, next())
    }
}

// $ go run main.go
// 输出如下 
/**
  初始值 = 1
  第 1 次迭代后, 值 = 2
  第 2 次迭代后, 值 = 3
  第 3 次迭代后, 值 = 4
  第 4 次迭代后, 值 = 5
  第 5 次迭代后, 值 = 6
*/

联系我

你可能感兴趣的:(go)