golang中的匿名函数

package main

import "fmt"

func adde() func(i int) int{
	sum:=0
	return func(i int) int{
		sum = sum +i
		return sum
	}
}


func main() {
	f:= adde()
	for i:=0; i<10;i++  {
		fmt.Printf("0+1+...+%d=%d\n",i,f(i))
	}
}

注意需要理解闭包的概念,是函数与外界的环境参数一起形成了闭包,所谓外界的环境也就是这个函数变量中带的参数或者是函数变量中的匿名函数需要用的参数(比如这里的sum)

发布了74 篇原创文章 · 获赞 2 · 访问量 6479

猜你喜欢

转载自blog.csdn.net/weixin_42067668/article/details/103482283