table 在 Lua 里是一种重要的数据结构,它可以说是其他数据结构的基础,通常的数组、记录、线性表、队列、集合等数据结构都可以用 table 来表示,甚至连全局变量(_G)、模块、元表(metatable)等这些重要的 Lua 元素都是 table 的结构。可以说,table 是一个强大而又神奇的东西。
table 特性
在之前介绍 Lua 数据类型时,也说过了 table 的一些特性,简单列举如下(详情可查看之前的介绍):
1.table是一个“关联数组”,数组的索引可以是数字或者是字符串
2.table 的默认初始索引一般以 1 开始
3.table 的变量只是一个地址引用,对 table 的操作不会产生数据影响
4.table 不会固定长度大小,有新数据插入时长度会自动增长
5.table 的方法函数
Lua 5.2.2 内置有以下 7 中对 table 操作的方法:
concat
函数 table.concat 主要用来把表里的每个元素通过一个分隔符(separator)连接组合起来,用法:
复制代码 代码如下:
table.concat(table, sep, start, end)
上面除 table 外, sep、start、end 这三个参数都是可选的,并且顺序读入的,如果没指定传入,函数 concat 会采用默认值(分隔符 sep 的默认值是空字符, start 的默认值是 1, end 的默认值是数组部分的总长)去执行。
复制代码 代码如下:
local tbl = {"apple", "pear", "orange", "grape"}
print(table.concat(tbl))
print(table.concat(tbl, "、"))
print(table