Lua table(表)

table 是 Lua 的一种数据结构用来帮助我们创建不同的数据类型,如:数字、字典等。
Lua table 使用关联型数组,你可以用任意类型的值来作数组的索引,但这个值不能是 nil。
Lua table 是不固定大小的,你可以根据自己需要进行扩容。


table(表)的构造

构造器是创建和初始化表的表达式。表是Lua特有的功能强大的东西。最简单的构造函数是{},用来创建一个空表。可以直接初始化数组:

tab1= {} --空表tab2 = {key1 = "value1",key2 = "value2"} --初始化--访问形式
print(tab2.key1)
print(tab2["key1"])--遍历
for k,v in pairs(tab2) doprint(k..v)
endtab3 = {"a","b","c","d"} --索引从1开始,依次递增的表for key,value in pairs(tab3) doprint(key..value)
end--[[
输出:
value1
value1
key1value1
key2value2
1a
2b
3c
4d
--]]
-- 初始化表
mytable = {}-- 指定值
mytable[1]= "Lua"-- 移除引用
mytable = nil
-- lua 垃圾回收会释放内存

表的中元素的连接,插入和移除,,,

--表的方法 table.xxxmethod-- 拼接成字符串
print(table.concat(mytable))          -- 无缝连接
print(table.concat(mytable,","))    -- 带逗号的连接
print(table.concat(mytable,",",2,4))  -- 带逗号连接第二个到第四个元素-- 添加数据
mytable[6] = 'java'                   --需要知道索引
mytable[#mytable+1] = "php"           --取得表的长度+1
table.insert(mytable,"c")             --使用内置的方法添加
--插入到2的位置 后面的后移
table.insert(mytable,2,"sql")--移除指定位置元素,不写则移除最后一个
table.remove(mytable,2)--移除2位置的元素,致为空,,此时后面的元素不会发生移动
mytable[2] = nil--查看结果
for v,k in pairs(mytable) doprint(v,k)
end--[[ 输出是:
luaC#jsbooc++
lua,C#,js,boo,c++
C#,js,boo
1   lua
3   js
4   boo
5   c++
6   java
7   php
8   c
--]]

**表的排序:**除了对数字对字母也可以排序,根据字符的ACIll码进行排序:
示例:

mytable = {'lua','C#','js','boo','c++'}print('排序前')
for v,k in pairs(mytable) doprint(v,k)
endtable.sort(mytable)
print('排序后')
for v,k in pairs(mytable) doprint(v,k)
end--[[   输出是:
排序前
1   lua
2   C#
3   js
4   boo
5   c++
排序后
1   C#
2   boo
3   c++
4   js
5   lua
--]]

注意:当我们获取的table的长度的时候无论是使用#还是table.getn其都会在索引中断(索引不是连续数字)的地方停止技术,而导致无法正确获得table 的长度,推荐使用迭代器的形式遍历数组

Lua 中 table(表) 的简单使用相关推荐

  1. Lua 中 table 库函数 table.concat 连接 函数

    Lua 中 table 库函数 table.concat 连接 函数 do--> table.concat 连接 函数 tab = {"a", "c", ...

  2. lua中table.和table[]的区别

    lua中table.和table[]的区别 lua中的table可以定义为如下格式 local tab = { ["one"] = 1, ["two"] = 2 ...

  3. Lua之table(表)

    Lua table(表) 使用表来统一表示Lua中的一切数据,是Lua区分于其他语言的一个特色.这个特色从最开始的Lua版本保持至今,很大的原因是为了在设计上保持简洁.Lua表分为数组和散列表部分,其 ...

  4. lua中table函数库

    一部分的table函数只对其数组部分产生影响, 而另一部分则对整个table均产生影响. 下面会分开说明. table.concat(table, sep,  start, end) concat是c ...

  5. python中table表结构_python中的简易表格prettytable

    安装:pip install PrettyTable 普通表格 from prettytable import PrettyTable table = PrettyTable(['编号','云编号', ...

  6. lua中table的常用方法

    转载:https://blog.csdn.net/Fenglele_Fans/article/details/83627021 1:table.sort() language = {"lua ...

  7. Lua 的table遍历 【转】

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://rangercyh.blog.51cto.com/1444712/1032925 ...

  8. Lua中的面向对象实现探讨

    Lua中,面向对向是用元表这种机制来实现的.元表是个很"道家"的机制,很深遂,很强大,里面有一些基本概念比较难理解透彻.不过,只有完全理解了元表,才能对Lua的面向对象使用自如,才 ...

  9. lua中的自定义类型:userdata

    本节是对lua中的userdata的一个小小总结,其示例参考自<Lua程序设计>(第四版) 问题:在lua中使用布尔数组. 虽然lua中可以使用表(table)来实现布尔数组,但是其空间利 ...

最新文章

  1. Oracle入门(九A)之用户的权限或角色
  2. 前端基础进阶(七):函数与函数式编程
  3. php7 setcookie无效_php COOKIE介绍和setcookie有时会在ie下失效问题
  4. 如何在Angular 10中生成QR码
  5. MySQL 错误 1366:1366 Incorrect integer value
  6. java在线反编译class文件工具地址
  7. 最佳75个安全工具介绍及其下载地址
  8. 《用 Python 处理 Excel 数据之正则表达式视频教程》 曾贤志
  9. ne_products 表
  10. dbz-ui试用体验(connecting mysql...)
  11. 别问上海配眼镜去哪里好,这几家上海老店你必须知晓!
  12. 人体常用穴位按摩保健方法(动画图解)
  13. libconfig c语言实例
  14. vue2.0 - layout组件(五)SideBar和Main页面布局
  15. HTML5 + canvas 飙车游戏(附源码)
  16. 饥荒联机版Mod开发——制作烹饪锅食物(六)
  17. 二进制的原码、反码、补码
  18. 计算机仿真模拟在焊接工艺的应用,激光加工数值模拟技术研究现状.doc
  19. android气球上升的属性动画,CSS3 不断有气球上升的动画背景效果
  20. 4G模块DTU网关远程抄表方案(三):水表188协议

热门文章

  1. 天刀碧玉刀服务器维护,《天涯明月刀》第五批天涯合璧服务器维护公告
  2. 人渣scum服务器物品,人渣SCUM有哪些食物 人渣SCUM采集物品一览
  3. 六年级语文计算机个人研修计划,小学语文个人研修计划书
  4. Android的WakeLock机制
  5. 铁道部改制:大伙儿想知道的其实很简单
  6. 大数据导论(四:大数据的存储)
  7. (c语言)求两个整数较大值
  8. (亚马逊第一步)撸一个亚马逊服务器从注册到登录所需几步
  9. java expires_设置浏览器禁止 缓存 的三个头 : expires,pragma, cache-
  10. 获取Android手机SD卡容量大小