zoukankan      html  css  js  c++  java
  • lua_table 学习

    lua  table ()

     

    Table 的常用操作

     

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

     

    1. table.concat(连接)

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

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

    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(fruitscomp);

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

     

     

     

     

     

     metatable(元表)

     

     

    元表用来改变table的行为;

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

    ·Setmetatabletablemetatble); -- 设置metatabletable的元表;

    ·getmetatabletable)返回table的元表;

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

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

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

     

    元表对用的操作符

     

    ·

  • 相关阅读:
    MFC——9.多线程与线程同步
    hdu 1598 find the most comfortable road(并查集+枚举)
    POJ3107Godfather[树形DP 树的重心]
    Codeforces 410C.Team[构造]
    Codeforces 715A. Plus and Square Root[数学构造]
    BZOJ1015[JSOI2008]星球大战starwar[并查集]
    洛谷U4727小L的二叉树[树转序列 LIS]
    Codeforces 500B. New Year Permutation[连通性]
    Codeforces 549D. Hear Features[贪心 英语]
    Codeforces 549C. The Game Of Parity[博弈论]
  • 原文地址:https://www.cnblogs.com/kpxy/p/10020222.html
Copyright © 2011-2022 走看看