匿名函数

php匿名函数与闭包函数

橙三吉。 提交于 2019-11-26 16:43:11
匿名函数:没有名字的函数;并没有牵扯到应用其他函数的变量问题。仅仅是没有名字 $f=function($param){} 闭包:A函数中嵌套着B函数,B程序中有用到A的变量,当外部函数C调用函数A时,虽然A已经执行完毕,理论上函数执行完毕,它就要被弹出栈,但是由于B要用到A,所以A的变量被保存到内存中不被销毁,我们称函数B是闭包 #定义普通函数 function demo($callback){ } #将上面的匿名函数传入普通函数的参数中 #不管匿名函数还是普通函数在执行完之后都会销毁但是当匿名函数被传入参数中时他执行完后不会被销毁 这个就是闭包函数了 demo($f); 判断是否是闭包函数 if ($f instanceof Closure) { } 来源: https://www.cnblogs.com/lichihua/p/11326857.html

箭头函数与匿名函数(转载)

柔情痞子 提交于 2019-11-26 14:24:58
ES6标准新增了一种新的函数:Arrow Function(箭头函数)。 为什么叫Arrow Function?因为它的定义用的就是一个箭头: x => x * x //上面的箭头函数相当于: function ( x ) { return x * x ; } 箭头函数相当于匿名函数,并且简化了函数定义。箭头函数有两种格式,一种像上面 的,只包含一个表达式,连{ … }和return都省略掉了。还有一种可以包含多条语句,这时候就不能省略{ … }和return: x => { if ( x > 0 ) { return x * x ; } else { return - x * x ; } } 如果参数不是一个,就需要用括号()括起来: // 两个参数: ( x , y ) => x * x + y * y // 无参数: ( ) => 3.14 // 可变参数: ( x , y , ... rest ) => { var i , sum = x + y ; for ( i = 0 ; i < rest . length ; i ++ ) { sum += rest [ i ] ; } return sum ; } 如果要返回一个对象,就要注意,如果是单表达式,这么写的话会报错: // SyntaxError: x => { foo : x } 因为和函数体的 { ... }

匿名函数

旧街凉风 提交于 2019-11-26 12:42:06
当我们在创建函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。这省去了我们挖空心思为函数命名的麻烦,也能少写不少代码,很多编程语言都提供这一特性。匿名函数用好了,会有画龙点睛的效果,没用好,就容易“画虎不成反类犬”,需要我们在平时的代码过程中,多学、多看、多琢磨。 Python语言使用 lambda 关键字来创建匿名函数。 所谓匿名,即不再使用 def 语句这样标准的形式定义一个函数。 lambda只是一个表达式,而不是一个代码块,函数体比def简单很多。 仅仅能在lambda表达式中封装有限的逻辑。 lambda 函数拥有自己的命名空间。 其形式通常是这样的: lambda 参数: 表达式 。 例如: lambda x: x * x 。它相当于下面的函数: def f(x): return x * x 关键字lambda表示匿名函数,冒号前面的x表示函数参数,x*x是执行代码。 匿名函数只能有一个表达式,不用也不能写return语句,表达式的结果就是其返回值。 匿名函数没有函数名字,不必担心函数名冲突,节省字义空间。此外,匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数: >>> f = lambda x: x * x >>> f <function <lambda> at 0x000001CAAC2D2E18 >>> f(5) 25

黑马程序员_日记8_JavaSE阶段性习题练习及复习

橙三吉。 提交于 2019-11-26 05:25:04
 ——- android培训 、 java培训 、期待与您交流! ———- JAVASE阶段性习题练习及复习 这篇博客主要是把毕老师出的前四大练习题全部做了一遍,经我反复测试和修改后写得一些JAVASE基础总结。我的代码都是可以直接编译运行的。 练习一(4题) 原题带我的代码 注意:练习一是一个题目+一个我的代码 已知学生成绩以100分为满分,共分5个等级:A,B,C,D,E。 90~100为等级A,80~89为等级B,70~79为等级C, 60~69为等级D,0~59为等级E。 要求定义一个成绩变量,当成绩变化时,可直接知道该成绩对应的等级。 例如:当成绩为100时,该学生的等级时A。 需求分析: 1.定义一个功能,通过给定的分数,获得对应的等级 2.明确功能的结果:等级。char。 3.有没有未知的内容:分数。int //解法一: class Demo { public static void main (String[] args) { graceDegree( 100 ); graceDegree( 0 ); graceDegree(- 100 ); } static void graceDegree( int grace) { if (grace < 0 || grace > 100 ) System. out .println( "Wrong " ); else if