Lua 特性

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 元方法用于修改表的输出行为

原文地址:https://www.cnblogs.com/DOGame/p/8720378.html