lua表

1: lua没有数组,但是表可以代替数组的功能(数组部分与非数组部分);

a.Lua表的数组部分的索引是从开始的, 1, 2, 3 ...称连续的索引;

b.Lua表的连续索引的长度(数组部分);  #表的名字;

--数组部分  索引从1开始(lua特色)
local list_array = {20,10,30,5,6}
--20 10 30 5 6
print(list_array[1],list_array[2],list_array[3],list_array[4],list_array[5]) --返回lua表里面数组部分的长度
--必须要求是连续的
print(#list_array) --5 --增加元素 因为索引不连续 增加失败
list_array[11] = 20
print(#list_array) --5 数组长度还是5 --增加元素成功
list_array[6] = 20
print(#list_array) --6 数组长度为6了

c.Lua表支持key, value模式;

2.遍历表

a.

b.

源码:

--数组部分  索引从1开始(lua特色)
local list_array = {20,10,30,5,6}
--20 10 30 5 6
print(list_array[1],list_array[2],list_array[3],list_array[4],list_array[5]) print("$$$$$$$$$$$$$$$$$")
--遍历lua里面的数组部分的数据
local index = 1
for index = 1,#list_array do
print(list_array[index])
end print("$$$$$$$$$$$$$$$$$") --遍历表里面所有的数据
for k,v in pairs(list_array) do
print(k,v)
end

结果显示

3.表的接口

1: table.insert(table, pos, value):

--数组部分  索引从1开始(lua特色)
local list_array = {20,10,30,5,6}
--20 10 30 5 6
print(list_array[1],list_array[2],list_array[3],list_array[4],list_array[5]) --插入数据
table.insert(list_array,2,8)
for k,v in pairs(list_array) do
print(k,v)
end

在table的数组部分指定位置(pos)插入值为value的一个元素, pos参数可选, 默认为数组部分末尾

2: table.remove(table, pos)

函数删除并返回table数组部分位于pos位置的元素. 其后的元素会被前移. pos参数可选, 默认为table长度, 即从最后一个元素删起

3:  table.sort(table, 比较函数): 对table进行排序

--数组部分  索引从1开始(lua特色)
local list_array = {20,10,30,5,6}
--20 10 30 5 6
print(list_array[1],list_array[2],list_array[3],list_array[4],list_array[5]) print("$$$$$$$$$$$$$$$$$$$$")
--排序
table.sort(list_array)
--遍历所有数据
for k,v in pairs(list_array) do
print(k,v)
end

4: table.getn(table)返回表中元素的个数; -->数组部分   (与#类似)

<4>Lua表的更多相关文章

  1. LUA表克隆方法归纳

    lua表克隆 将lua一个表, 克隆出一份为一个独立的另外一个表. 对于一个module, 如果在require之后,获得的表对象, 不能直接修改, 例如lua缓存此表, 但是多次逻辑执行, 都使用的 ...

  2. Lua表(table)的用法_个人总结

    Lua表(table)的用法_个人总结 1.表的创建及表的介绍 --table 是lua的一种数据结构用来帮助我们创建不同的数据类型.如:数组和字典--lua table 使用关联型数组,你可以用任意 ...

  3. lua表排序

    对于lua的table排序问题,一般的按照value值来排序,使用table.sort( needSortTable , func)即可(可以根据自己的需要重写func,否则会根据默认来:默认的情形之 ...

  4. 对lua表中数据按一定格式处理,循环

    function putStartCard(handCard) function dataDeal(array,a,b,c) cclog("进入datadeal=============== ...

  5. lua表类型

    Lua的表的定义: typedef struct Table { CommonHeader; lu_byte flags; lu_byte lsizenode; /* log2 of size of ...

  6. LUA表与函数的深入理解

    local heroInfo = {} --直接打印 table的名字,就会输出该table的内存地址 print("表地址---------------",heroInfo) - ...

  7. LUA表的引用理解

    --lua中引用类型都是分配在堆上的 --因此,我们在使用LUA的table时,可尽可能的使用表的引用,而不需要拷贝表里的元素 --比如,通过RPC协议传来一个表A,我们想要缓存这个表,只需要保存该表 ...

  8. Lua表(table)的个人总结

    1.表的简介和构造 table是个很强大且神奇的东西,又可以作为数组和字典,又可以当作对象,设置module.它是由数组和哈希表结合的实现的.他的key可以是除nil以外任意类型的值,key为整数时, ...

  9. lua 表

    最近在尝试配置 awesome WM,因此粗略地学习了一下 lua . 在学习过程中,我完全被表表在 lua 中的应用所镇住了. 表在 lua 中真的是无处不在:首先,它可以作为字典和数组来用:此外, ...

随机推荐

  1. [daily][centos][nginx] 在centos7使用nginx启用对文件目录的http访问

    1. 安装nginx yum install nginx 2. 修改配置 2.1 提供目录权限: 我需要访问的目录是 /home/data, 用户是data, 所以修改如下配置: [root@S205 ...

  2. Amazon Aurora: Design Considerations for High Throughput Cloud-Native Relational Databases

    INTRODUCTION   In modern distributed cloud services, resilience and scalability are increasingly ach ...

  3. Badboy测试工具官网下载以及安装导出Jmeter脚本

    首先打开浏览器,在百度上搜索“Badboy ”,默认搜索到的第一个就是官网地址: 1 也可以在其他软件下载网址上进行下载 2 点击进入后,官网左侧菜单中有“download”字样,或者官网右侧顶部也有 ...

  4. linux 循环读取文件的每一行

    在Linux中有很多方法逐行读取一个文件的方法,其中最常用的就是下面的脚本里的方法,而且是效率最高,使用最多的方法.为了给大家一个直观的感受,我们将通过生成一个大的文件的方式来检验各种方法的执行效率. ...

  5. RSA 时序攻击

    RSA的破解从理论上来讲是大数质数分解,可是就是有一些人另辟蹊径,根据你解密的时间长短就能破解你的RSA私钥. 举一个不恰当但是比较容易理解的例子: 密文0101 私钥0110 明文0100 问题的关 ...

  6. 前端 chrome查看html样式基本操作

    Chrome浏览器是世界上HTML5支持最好的浏览器.提供了非常好的开发工具,非常适合我们开发人员使用.审查元素功能的快捷键是F12. 按检查或者F12 鼠标点击找标签 chorme审查元素的使用 - ...

  7. Java基础知识(JAVA中String、StringBuffer、StringBuilder类的区别)

    java中String.StringBuffer.StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题.现在总结一下,看看他们的不同与相同. 1.可变与不可 ...

  8. 在字符编码格式选项里UTF-8(无BOM)

    BOM——Byte Order Mark,就是字节序标记 在UCS 编码中有一个叫做”ZERO WIDTH NO-BREAK SPACE“的字符,它的编码是FEFF.而FFFE在UCS中是不存在的字符 ...

  9. (转)Springboot邮件服务

    springboot仍然在狂速发展,才五个多月没有关注,现在看官网已经到1.5.3.RELEASE版本了.准备慢慢在写写springboot相关的文章,本篇文章使用springboot最新版本1.5. ...

  10. Python 全栈开发九 日志模块

    日志是一种可以追踪某些软件运行时所发生事件的方法.软件开发人员可以向他们的代码中调用日志记录相关的方法来表明发生了某些事情.一个事件可以用一个可包含可选变量数据的消息来描述.此外,事件也有重要性的概念 ...