lua  table (表)

 

Table 的常用操作

 

local fruits = {aaa,bbb,ccc,ddd,eee,fff,ggg}

 

  1. table.concat(连接)

table.concat(fruits,:,x,y);

用于连接fruits表中的第x到第y个元素每个元素间用“:”隔开,x、y默认为首尾,“”默认为空;

  1. table.insert(插入)

table.insert(fruits,x,hhh);

在表中的第x个位置前插入元素”hhh”,x默认为#fruits + 1;

  1. table.remove(删除)

table.remove(fruits,x,);

咋删除表中的第x个元素,后面元素前移,x默认为#fruits

  1. table.move (拷贝)

table.move(fruits,f,e,t,fruits2);

将表1中的第f到第e个元素复制到表二的第t个元素之后,f必须为正数

  1. table.sort(排序)

Table.sort(fruits,comp);

将表内元素按指定次序排序,如果提供comp,它必须是一个可以接受两个表内元素为参数的函数(当第一个元素序言排在第二个元素之前时返回真),默认将使用lua操作”<”作为替代品。

 metatable(元表)

元表用来改变table的行为;

例如我们试图用”+”来操作两个表时,首先检查两个表是否有元表,然后检查两个表中是否有”__add”字段,若找到,就调用对应的值,此时,”__add”为等时字段,其对应的值(一个function或table)就是“元方法”。

·Setmetatable(table,metatble); -- 设置metatable为table的元表;

·getmetatable(table)返回table的元表;

·__index 元方法 在通过建访问时使用参数为表和键值;

·__newindex 元方法 用来对表更新;

·__tostring 元方法 用来改变表的输出行为,改变的是print(table)的结果;

 

元表对用的操作符

 lua_table 学习-LMLPHP

·

05-07 15:15