1.轻量级:C语言编写 源码开放,编译后仅100多K,是一种比较好的嵌入式语言;
2.可扩展性:Lua提供易于使用的拓展接口和机制;
3.支持面向过程,自动内存管理;
4.Lua 数据类型:nil,boolean,number,string,userdata,function,table;
5.pairs 和ipairs 区别:
pairs:迭代table,遍历表中所有的KEY,可以返回nil;
ipairs:迭代数组,不能返回nil 遇到nil 则退出;
Lua 元表:使用元表我们可以定义Lua如何计算两个table的相加操作a+b
当Lua试图对两个表进行相加时,先检查两者之一是否有元表,之后检查是否有一个叫"__add"的字段,若找到,则调用对应的值。"__add"等即时字段,其对应的值(往往是一个函数或是table)就是"元方法"
_newindex 元方法
__newindex 元方法用来对表更新,__index则用来对表访问 。
当你给表的一个缺少的索引赋值,解释器就会查找__newindex 元方法:如果存在则调用这个函数而不进行赋值操作。
__call 元方法
__call 元方法在 Lua 调用一个值时调用。
__tostring 元方法
__tostring 元方法用于修改表的输出行为