前言

今天继续为大家更新Go语言学习记录的文章。

函数是任何一门编程语言最重要的组成部分之一。函数简单理解是一段代码的封装:把一段逻辑抽象出来封装到一个函数中,给他取个名字,每次需要的时候调用这个函数即可。使用函数能够让代码更清晰,更简洁。

定义

下面的代码段介绍了go语言中函数定义的各种情况,以及延迟函数的使用。

函数也可以作为函数的参数

举个栗子:

打印结果:

函数作为函数的返回值

打印结果:

小结:

  • 我们打印f7的值是一个内存地址
  • f7的类型和我们预期的一致,返回了函数类型,就是我们定义的ff()函数

匿名函数

匿名函数就是没有名字的函数。匿名函数多用于实现回调函数和闭包。

在Go语言中函数内部不能再像之前那样定义函数了,只能定义匿名函数。

匿名函数的定义格式如下:

匿名函数因为没有函数名,所以没办法像普通函数那样调用,所以匿名函数需要保存到某个变量或者作为立即执行函数:

小结:自执行函数就是在匿名函数后面追加(),表示不需要外部调用,直接执行。

闭包

闭包是一个函数,这个函数包含了他外部作用域的一个变量

举个栗子

打印结果:

小结: 上面的栗子就是一个典型的闭包结构:匿名函数内部包含了他外部的变量x。

闭包=函数+引用环境

总结