【go基础】闭包

闭包

闭包就是一个函数和与其相关的引用环境组合的一个整体(实体)。

package main

import (
	"fmt"
)

// AddUpper 累加器
func AddUpper() func(int) int {
	var n int = 10
	return func(x int) int {
		n = n + x
		return n
	}
}
func main() {
	f := AddUpper()
	fmt.Println(f(1)) // 输出11
	fmt.Println(f(2)) // 输出13
}

  • 可以将闭包看作一个类,上例中,可以将AddUpper()看作一个类,匿名函数func (x int) int {...}是类的方法,函数中引用到的n是类的属性。

你可能感兴趣的:(基础知识)