Lua 学习笔记(二)

七、再论lua函数

1、lua中的函数被认为是带有词法定界和第一类值
    a、词法定界:被嵌套的函数可以访问外部函数的变量
    b、第一类值: lua中的函数可以放在变量中
    (函数指针?)

    例子:
    function f(x) return 2 * x; end;
    实际上函数应该定义成
    f = function(x) return 2 * x; end;
    第一种较好理解,写成第一种可以减少错误,该方法专业叫法称 语法糖

2、闭包


3、非全局函数
    局部函数在一定范围内有效
    声明方式: local
    注意递归的声明方式

4、尾递归


八、迭代器和泛型for

1、迭代器包含上一次成功调用的状态和下一次成功调用的状态,闭包可以实现这种任务,闭包包含两个部分,一个是闭包自己,一个是实现闭包的工厂
2、迭代函数难写易用,一般不需要自己定义


//-----迭代器太过复杂-----------




原文地址:https://www.cnblogs.com/yimuren/p/3952947.html