在Lua中,table(表)是主要的数据结构(事实上也仅此一种),数组则是table的一种特殊应用。
——table的介绍
lua中,有预加载的table库。
在这个table库中包含了如下函数:
setn
insert
getn
foreachi
maxn
foreach
concat
sort
remove
要调用它们,使用table.函数名(参数列表)。
demo:
print(table.maxn({1,2,3})) --> 获取table的最大长度
table.sort(table) --> 给表table排序
table.insert(table,"Hi") --> 给table增加下标为1的"Hi"元素
print(table[1]) --> Hi
table.remove(table,1) --> 给table删除下标为1的元素
print(table[1]) --> nil
table是Lua中的hashmap(包括其实现方式也是). 由于其包含所有数组的功能, 所以可以认为table是扩展了的数组. Lua没有再额外提供单独的数组类型.用以下的语句声明一个空的table:
newTable = {}
可以用以下的方式向table中添加值:
newTable[2] = "14"
可以使用字符串形式的key值, 但必须在字符串前后添加双引号("").
newTable["time"] = "April 14"
也可以在首次声明table的同时进行赋值, 参考下面的语句:
newTable = {
[key1] = value1,
table.concat (table [, sep [, i [, j ] ] ])将元素是string或者number类型的table,每个元素连接起来变成字符串并返回。
可选参数sep,表示连接间隔符,默认为空。
i和j表示元素起始和结束的下标。
table.insert (table, [pos ,] value)
在(数组型)表 table 的 pos 索引位置插入 value,其它元素向后移动到空的地方。pos 的默认值是表的长度加一,即默认是插在表的最后。
table.remove (table [, pos])
适用数组的情况
在表 table 中删除索引为 pos(pos 只能是 number 型)的元素,并返回这个被删除的元素,它后面所有元素的索引值都会减一。pos 的默认值是表的长度,即默认是删除表的最后一个元素。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)