<4>Lua表
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表的更多相关文章
- LUA表克隆方法归纳
lua表克隆 将lua一个表, 克隆出一份为一个独立的另外一个表. 对于一个module, 如果在require之后,获得的表对象, 不能直接修改, 例如lua缓存此表, 但是多次逻辑执行, 都使用的 ...
- Lua表(table)的用法_个人总结
Lua表(table)的用法_个人总结 1.表的创建及表的介绍 --table 是lua的一种数据结构用来帮助我们创建不同的数据类型.如:数组和字典--lua table 使用关联型数组,你可以用任意 ...
- lua表排序
对于lua的table排序问题,一般的按照value值来排序,使用table.sort( needSortTable , func)即可(可以根据自己的需要重写func,否则会根据默认来:默认的情形之 ...
- 对lua表中数据按一定格式处理,循环
function putStartCard(handCard) function dataDeal(array,a,b,c) cclog("进入datadeal=============== ...
- lua表类型
Lua的表的定义: typedef struct Table { CommonHeader; lu_byte flags; lu_byte lsizenode; /* log2 of size of ...
- LUA表与函数的深入理解
local heroInfo = {} --直接打印 table的名字,就会输出该table的内存地址 print("表地址---------------",heroInfo) - ...
- LUA表的引用理解
--lua中引用类型都是分配在堆上的 --因此,我们在使用LUA的table时,可尽可能的使用表的引用,而不需要拷贝表里的元素 --比如,通过RPC协议传来一个表A,我们想要缓存这个表,只需要保存该表 ...
- Lua表(table)的个人总结
1.表的简介和构造 table是个很强大且神奇的东西,又可以作为数组和字典,又可以当作对象,设置module.它是由数组和哈希表结合的实现的.他的key可以是除nil以外任意类型的值,key为整数时, ...
- lua 表
最近在尝试配置 awesome WM,因此粗略地学习了一下 lua . 在学习过程中,我完全被表表在 lua 中的应用所镇住了. 表在 lua 中真的是无处不在:首先,它可以作为字典和数组来用:此外, ...
随机推荐
- [GDOI2018]滑稽子图
题目链接:[被和谐] 题目大意:对于一棵树$(V,E)$,对于$S\subset V$,$f(S)$为点集$S$的导出子图的边数.求$\sum_{S\subset V}f(S)^k$ 这里的导出子图说 ...
- vue获取内存中的值并写入
<template> <div class="container"> <h3>发表评论</h3> <hr> <te ...
- 递归、嵌套for循环、map集合方式实现树形结构菜单列表查询
有时候, 我们需要用到菜单列表,但是怎么样去实现一个菜单列表的编写呢,这是一重要的问题. 比如我们需要编写一个树形结构的菜单,那么我们可以使用JQuery的zTree插件:http://www.tre ...
- Java与openssl的RSA算法
1.java生成的公私钥格式为 pkcs8(PKCS8EncodedKeySpec), 而openssl默认生成的公私钥格式为 pkcs1 2.java采用的rsa默认补齐方式是pkcs1 (RSA/ ...
- adb移动端测试
1. Android介绍 Android 是google公司主导的一个开放的手机操作系统,不过目前已经超过了手机的局限,而定位于移动设备的操作系统. Android一词的本义指“机器人”,取名原因很简 ...
- memcached命令知识
memcached安装配置 yum install memcached memcached最大的缓存单位为1M,大于1M的单项数据将不会缓存 memcached是基于文本协议的,所 ...
- Java中的boxing和unboxing(转)
测试代码: System.out.println(0L == 0);//true System.out.println(((Long)0L).equals(0));//false Integer i1 ...
- poj3259: Wormholes(BF模板题)
http://poj.org/problem?id=3259 Description While exploring his many farms, Farmer John has discovere ...
- Linux下安装zookeeper集群(奇数个)
1. 解压zookeeper压缩包 2. data里创建“myid”文件(命令touch myid),内容是1(命令 echo 1 >> myid) 3. zoo.cnf里配置dat ...
- vue的图片路径,和背景图片路径打包后错误解决
最近在研究vue,老实的按照官网提供的,搭建的了 webpack+vue+vuex+vue-router,,因为是自己搭建的,所以踩了不少坑,一般问题百度都有,这个背景图片的问题,查了很久才解决. 1 ...