专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

四十一、Go 语言 - 闭包函数

文章永久连接:https://tech.souyunku.com/5358

Go 语言支持闭包函数,又称匿名函数

匿名函数是一个 “内联” 语句或表达式

匿名函数的优越性在于可以直接使用函数内的变量,不必申明

Go 语言使用 func() 定义匿名函数

语法

Go 语言中定义闭包函数的语法格式如下

func([parameter_list]) [return_type] {
   // 函数体
}

与一般函数的区别就是,闭包函数没有 函数名

范例

下面的范例,我们创建了一个函数 getSequence() 返回另外一个函数,该函数的目的是在闭包中递增 i 变量

/**
 * file: main.go
 * author: 搜云库技术团队(tech.souyunku.com)
 * Copyright © 2015-2065 tech.souyunku.com. All rights reserved.
 */

package main

import "fmt"

func getSequence() func() int {
   i:=0
   return func() int {
      i+=1
     return i  
   }
}

func main(){
   /* nextNumber 为一个函数,函数 i 为 0 */
   nextNumber := getSequence()  

   /* 调用 nextNumber 函数,i 变量自增 1 并返回 */
   fmt.Println(nextNumber())
   fmt.Println(nextNumber())
   fmt.Println(nextNumber())

   /* 创建新的函数 nextNumber1,并查看结果 */
   nextNumber1 := getSequence()  
   fmt.Println(nextNumber1())
   fmt.Println(nextNumber1())
}

编译运行以上 Go 范例,输出结果如下

$ go run main.go 
1
2
3
1
2

干货推荐

本站推荐:精选优质专栏

附录:GOlang 教程:系列文章

未经允许不得转载:搜云库技术团队 » 四十一、Go 语言 - 闭包函数

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们