今天我们继续来学习函数,上次我们介绍的函数都是有名有姓的函数,可以说是有头有脸的人物,那今天我们就来说一下匿名函数,顺便补充一下变量的作用域。
匿名函数
顾名思义,匿名函数就是没有名字的函数,在定义方法时,要取一个简洁明了的函数名可不是一件简单的事,就像上次我在定义多参函数的时候就使用了拼音duocan来作为函数名,实在是无奈啊。那好,我们先来看一个匿名函数的例子。
![](https://img.haomeiwen.com/i12048719/b34291f6f4316ee1.jpg)
可以看出,这个和以下函数是等价的
当函数比较简单时,我们就可以使用这种方法而省去想一个好函数名的时间。
变量的作用域
全局变量和局部变量
顾名思义,全局变量的作用域是全局,而局部变量的作用域是局部。看下面的例子
![](https://img.haomeiwen.com/i12048719/c6bfa6947eeaf846.jpg)
可以看到,虽然我们调用了_print(),而这个方法是把5复制给a,而最终我们打印a的值时,结果却是3,这就说明a=5并没有把a=3给覆盖掉,即a=5的作用域仅仅是在方法_print()内部。看下面这个例子
![](https://img.haomeiwen.com/i12048719/9347cf8b02a14b7d.jpg)
当然,全局变量也不会覆盖局部变量,调用_print()方法也可以打印出局部变量的值。
![](https://img.haomeiwen.com/i12048719/0a498faa434b6dcc.jpg)
也就是说,全局变量和局部变量是各行各事,没有关联。方法内部的局部变量是不能为方法外部工作的,当然,如果一定要让它们工作,我们可以在局部变量前加上关键字global使其变为全局变量。
![](https://img.haomeiwen.com/i12048719/f52a86e957162e03.jpg)
注意,如果用global声明的变量和外部的全局变量同名,那么外部的全局变量就会被覆盖掉哦
![](https://img.haomeiwen.com/i12048719/9086d15a39dcbcf1.jpg)
那好,今天的内容就是这些了哦,最近有点忙,写得有点短,见谅!
![](https://img.haomeiwen.com/i12048719/a917d2c6b14759a0.jpg)
网友评论