欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Go语言闭包

程序员文章站 2022-03-25 09:52:55
...

闭包的定义

闭包是由函数及其相关引用环境组合而成的实体(即:闭包=函数+引用环境)。

package main

import (
	"fmt"
)

func fib() func() int32 {
	var a, b, c int32 = 1, 1, 1
	return func() (res int32) {

		if c <= 2 {
			c++
			res = 1

		} else {
			b, a = a, a+b
			res = a
		}

		return
	}
}
func main() {
	var x = fib()
	for i := 1; i < 10; i++ {
		fmt.Println(x())
	}

}