ad

编程之旅从学会《零基础Go语言》开启_第七章_函数3

admin 117 2023-10-12

【摘要】 本书摘自《零基础Go语言 从入门到精通》一书中第七章,第4.2节,编者是零壹快学

7.4.2 可变参数与内置函数

编程之旅从学会《零基础Go语言》开启_第七章_函数3

Go语言中许多内置函数的参数都用了可变参数,比如最常用的fmt包中的Println函数和Printf

函数。

fmt包中的Println函数源码如下(在GoLand编辑器中, 可以将鼠标移到目标函数上,按下ctrl+

鼠标左键来跳转到函数定义的代码块),Println函数所有的参数都为可变参数:

Printf函数源码如下,第一个参数指定了需要打印的格式:

7.4.3 可变参数的传递

可变参数本质上是一个切片,如果要在多个函数中传递可变参数,可在传递时添加“...”。 我们对动手写7.4.1的例子稍加改动来进行可变参数传递:

动手写7.4.2

执行结果如下:

基 础 Go 语言从入门到精通

执行结果如下:

○7.5 匿名函数和闭包

匿名函数即在需要函数时定义函数,匿名函数能以变量方式传递,它常常被用于实现闭包。

首先,我们来了解什么是匿名函数以及它的调用方式。

7.5.1 定义和使用匿名函数

匿名函数的格式如下:

匿名函数的调用有两种方式:

◇ 定义并同时调用匿名函数。

◇ 将匿名函数赋值给变量。

1. 定义并同时调用匿名函数

可以在匿名函数后添加“()”直接传入实参:

动手写7.5.1

执行结果如下:

2. 将匿名函数赋值给变量

将匿名函数赋值给一个变量,之后再进行调用:

动手写7.5.2

执行结果如下:

7.5.2 闭包的定义

闭包就是包含了自由变量的匿名函数,其中的自由变量即使已经脱离了原有的自由变量环境 也不会被删除,在闭包的作用域内可继续使用这个自由变量, 同一个匿名函数和不同的引用环境

组成了不同的闭包。

闭包就如同有“记忆力”一般,可对作用域内的变量的引用进行修改。

对于闭包有许多应用,在第10章中将会结合Go语言中的错误和异常进一步阐述闭包的作用。

7.5.3 闭包的“记忆力”

闭包可对作用域内变量的引用进行修改,在闭包内成功修改变量值后会对变量实际的值产生

修改。

我们首先来看一个简单的例子:

动手写7.5.3

基 础 Go 语言从入门到精通

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:编程之旅从学会《零基础Go语言》开启_第五章_流程控制2
下一篇:编程之旅从学会《零基础Go语言》开启_第六章_Go 语言内置容器5
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×