什么叫零代码?- 领略编程的新纪元
117
2023-10-12
【摘要】 本书摘自《零基础Go语言 从入门到精通》一书中第七章,第4.2节,编者是零壹快学
7.4.2 可变参数与内置函数
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~