跳转到主要内容

【Go语言高级开发】Go 闭包简介 - 教程

在本教程中,我们将研究 Go 中的闭包。我们将介绍它们背后的理论,并研究如何在自己的 Go 应用程序中使用它们。

闭包 - 理论


所以,让我们深入理论。

我们可以在任何支持函数作为一等对象的编程语言中创建和使用闭包。 Go,恰好是这样一种语言,否则这篇文章将毫无意义。

因此,闭包的技术定义是闭包是一种使用具有一流功能的语言实现词法范围名称绑定的技术 - 维基百科。

现在,别担心,当我第一次读到这篇文章时,我有点挠头,不得不考虑一下。

用外行的话来说,闭包是一个函数值,它能够引用与它的主体一起布置的变量。

注意 - 重要的是要注意闭包和匿名函数之间的明显区别,这些区别通常被误认为是闭包。您可以在此处了解有关匿名函数的更多信息:Go Anonymous Functions

一个简单的例子


让我们创建一个非常简单的闭包示例,希望能阐明它是如何工作的。

我们将从创建一个名为 getLimit() 的非常简单的函数开始,这将是本例中的闭包。

这将包含一个 int 类型的限制变量,该变量将设置为 10。每次调用 limit()

main.go