推荐答案
Lua 的 table
库提供了以下常用函数:
table.concat(table [, sep [, i [, j]]])
将表中的元素连接成一个字符串,sep
是分隔符,i
和j
是起始和结束索引。table.insert(table, [pos,] value)
在表的指定位置插入一个元素。如果未指定位置,则默认插入到表的末尾。table.remove(table [, pos])
移除表中指定位置的元素并返回该元素。如果未指定位置,则默认移除最后一个元素。table.sort(table [, comp])
对表中的元素进行排序,comp
是一个可选的比较函数。table.pack(...)
将传入的参数打包成一个表,并自动添加一个n
字段表示元素个数。table.unpack(table [, i [, j]])
将表中的元素解包为多个返回值,i
和j
是起始和结束索引。table.move(a1, f, e, t [, a2])
将表a1
中从索引f
到e
的元素移动到表a2
的索引t
处。如果未提供a2
,则默认为a1
。
本题详细解读
1. table.concat
table.concat
用于将表中的元素连接成一个字符串。它特别适合处理字符串数组。例如:
local t = {"a", "b", "c"} print(table.concat(t, ", ")) -- 输出: a, b, c
sep
是可选的分隔符,默认为空字符串。i
和j
是可选参数,用于指定连接的起始和结束索引。
2. table.insert
table.insert
用于在表中插入元素。例如:
local t = {1, 2, 3} table.insert(t, 2, 10) -- 在索引 2 处插入 10 print(table.concat(t, ", ")) -- 输出: 1, 10, 2, 3
- 如果未指定位置,则默认插入到表的末尾。
3. table.remove
table.remove
用于移除表中的元素。例如:
local t = {1, 2, 3} table.remove(t, 2) -- 移除索引 2 处的元素 print(table.concat(t, ", ")) -- 输出: 1, 3
- 如果未指定位置,则默认移除最后一个元素。
4. table.sort
table.sort
用于对表中的元素进行排序。例如:
local t = {3, 1, 2} table.sort(t) print(table.concat(t, ", ")) -- 输出: 1, 2, 3
comp
是一个可选的比较函数,用于自定义排序规则。
5. table.pack
table.pack
用于将多个参数打包成一个表。例如:
local t = table.pack(1, 2, 3) print(t.n) -- 输出: 3
- 返回的表会自动包含一个
n
字段,表示元素个数。
6. table.unpack
table.unpack
用于将表中的元素解包为多个返回值。例如:
local t = {1, 2, 3} local a, b, c = table.unpack(t) print(a, b, c) -- 输出: 1 2 3
i
和j
是可选参数,用于指定解包的起始和结束索引。
7. table.move
table.move
用于将表中的元素从一个位置移动到另一个位置。例如:
local t1 = {1, 2, 3} local t2 = {} table.move(t1, 1, 3, 1, t2) print(table.concat(t2, ", ")) -- 输出: 1, 2, 3
- 如果未提供目标表
a2
,则默认为源表a1
。