Lua_表结构_007
来源:互联网 发布:网络连接异常 编辑:程序博客网 时间:2024/06/05 07:33
在Lua中的table类似C#中的字典,其实就是一个key-value键值对的数据结构。
常用的方法
1 table.concat (table [, sep [, start [, end]]]):concat是concatenate(连锁, 连接)的缩写. table.concat()函数列出参数中指定table的数组部分从start位置到end位置的所有元素, 元素间以指定的分隔符(sep)隔开。2 table.insert (table, [pos,] value):在table的数组部分指定位置(pos)插入值为value的一个元素. pos参数可选, 默认为数组部分末尾.3 table.maxn (table)指定table中所有正数key值中最大的key值. 如果不存在key值为正数的元素, 则返回0。(Lua5.2之后该方法已经不存在了)4 table.remove (table [, pos])返回table数组部分位于pos位置的元素. 其后的元素会被前移. pos参数可选, 默认为table长度, 即从最后一个元素删起。5 table.sort (table [, comp])对给定的table进行升序排序。
【注意】第二种方式创建的时候键不可以是字符串,值可以是任意的数据类型
表的遍历
不管用何种方式创建table,我们都可以向表中添加或者删除任何类型的域,构造函数仅仅影响表的初始化。
数组
在lua中通过整数下标访问表中的元素即可简单的实现数组。数组不必事先指定大小,大小可以随需要动态的增长。例: a = {} -- new array for i=1, 4 do a[i] = 0 end a[5] = 1 for i,v in ipairs(a) do print(i,v) end
扩展
扩展:如果表的value为function,遍历表并执行每一个functionfunction fun()endt = {}t["key1"] = funfor k in pairs(t) do t[k]()end
注意事项
1、可以把这个类型看作数组;
2、可以用任意类型来做数组索引,除了nil;
3、所有元素之间,总是用”,”隔开;
4、所有索引值都需要用”[”和”]”括起来;如果是字符串还可以去掉引号和中括号;
6、在构造函数的最后的“,”是可选的,可以方便以后的扩展。如果不写索引,则索引就会被认为是数字,并按顺序自动从1往后编排。
表相关的函数
myTable = {"aa","bb","cc","ff","GG"}--把表中所有数据连成一个字符串 适用于数组类型的表结构 不适用于字典类型的表结构print("concat:" .. table.concat(myTable))--在表中索引为3的位置插入一个数据table.insert(myTable,3,"pp")--默认是在表的末尾添加一个数据table.insert(myTable,"yy")print("insert:" .. table.concat(myTable))--删除指定下标的元素table.remove(myTable,4)print("remove:" .. table.concat(myTable))--如果不指定删除的下标 默认删除表的末尾table.remove(myTable)print("remove:" .. table.concat(myTable))--按照ASCII码的顺序排序table.sort(myTable)print("sort:" .. table.concat(myTable))
运行结果:
concat:aabbccffGG
insert:aabbppccffGGyy
remove:aabbppffGGyy
remove:aabbppffGG
sort:GGaabbffpp
面向对象实现
Enemy={}local this=Enemy;Enemy.hp=100;Enemy.speed=50;Enemy.move=function()print("move")endfunction Enemy.attact()print("attact")print(this.hp)endEnemy.attact();
阅读全文
0 0
- Lua_表结构_007
- Lua_元表(Metatable)_010
- Lua_第16 章 Weak 表
- lua_学习
- 工作零散记忆_007
- C语言培训_007
- unity3d培训_007
- Unity_Time类_007
- 学习笔记_007
- java排序算法_007基数排序
- OCP考题解析_007: 同义词
- OCP考题解析_007: 序列
- Lua_基本Lua语法
- Lua_面向对象
- Lua_各种工具方法
- Lua_创建Label
- Lua_创建Menu
- Lua_创建精灵
- position中的sticky
- The study of how to define a function in Python(20170907)
- 欧拉筛
- HDU3401 Trade (动态规划+单调队列)
- ANSYS中表格数组的定义及使用举例
- Lua_表结构_007
- spring DI
- android su 白名单 [续]
- 控制台
- 数据库面试技巧,通过JDBC展示自己专业性,摘自java web轻量级开发面试教程
- CCF考试Java试题--差1数对
- 二、Spring Cloud 的 Eureka 组件
- 利用sizeof求解类的大小
- SQL-LeetCode-easy-595