lua的特性
1. 轻量级:一标准的C语言编写原发开放,编译后仅仅100K,占用内存小;
2. 扩展性:Lua提供了非常已于使用的扩展口和机制;
3. 支持面向过程编程和函数式编程
lua的数据类型
nil、boolean、number、string、userdata、function、thread和table
其中:lua把false和nil看作”假“,其他的是都是“真”
pairs和ipairs区别
pairs迭代table,可以遍历表中所有key并返回nil
ipairs迭代数组,不能返回nil,遇到nil则退出
闭包
外部函数+外部函数创建的upvalue+内部函数(闭包函数)
function test() local i=0 return function()//尾调用 i+=1 return i end end
闭包在迭代器中的运用:迭代器需要保留上一次调用的状态和下一次成功调用的状态,刚好可以使用闭包的机制来实现