1.返回函数
说白了就是不返回结果,为了方便后面继续用到,而返回一个函数。。。
f 调用函数lazy_sum 返回的是一个函数
再次调用f()时才会返回计算的值:a =
- 在函数
lazy_sum
中又定义了函数sum
,并且,内部函数sum
可以引用外部函数lazy_sum
的参数和局部变量,当lazy_sum
返回函数sum
时,相关参数和变量都保存在返回的函数中,这种称为“闭包(Closure)” - 返回闭包时牢记一点:返回函数不要引用任何循环变量,或者后续会发生变化的变量
利用闭包返回一个计数器函数,每次调用它返回递增整数
2.匿名函数lambda
有时候不需要显示的定义函数,可以引用匿名函数 等价于
- 冒号前表示参数,后面是参数内容,有要求就是 参数内容只能是一个表达式,lambda函数直接返回该表达式的计算结果。