闭包

上图代码是go语言闭包的写法,当一种编程语言引入了闭包的思想,那么我们就知道

  • 该编程语言函数肯定是一等公民(就是函数可以作为参数,可以作为返回值)
  • 函数内部可以定义函数 

什么是闭包

我们从上面得知,闭包肯定与函数有关,一种说法是,闭包是引用了自由变量的函数,这个自由变量将和该函数一同存在,即使离开创建它的环境也还存在。这种说法是指明闭包是一个函数。还有一种说法:闭包是由函数和与其相关的引用环境组合而成的实体  。这两种各有各的说法 。但是闭包保证能够在函数内部调用自由变量,而函数外部无法访问到该自由变量。

阅读 “闭包”

发表评论