Lua 编程中的 table.pack() 函数


当我们想要从多个传递给函数的值中返回一个表作为结果时,我们会使用 **table.pack()** 函数。**table.pack()** 函数是一个可变参数函数。

语法

table.pack(x,y,z,....)

示例

**table.pack()** 函数提供一个包含所有作为参数传递给它的值的表,请考虑以下示例:

 在线演示

a = table.pack(1,2,3)
print(a)
print(a.n)

在上面的例子中,我们将三个数字作为参数传递给 **table.pack()** 函数,然后我们打印返回值,即包含我们作为参数传递的值的表的地址,最后我们使用关键字 n 打印表中存在的元素数量。

输出

table: 0x13998b0
3

需要注意的是,当我们将值作为参数传递时,表中会添加一个额外的字段,通常类似于:

{n = “number of elements in table”}

然后,我们也可以使用这个 n。现在让我们使用通用的 **for** 循环来打印从 **table.pack()** 函数返回的表中的所有元素。

示例

请考虑以下示例:

 在线演示

local a = table.pack(10,20,30)
for _, v in pairs(a) do print(v) end

输出

10
20
30
3

如果我们仔细观察输出,我们可以清楚地看到最后一个输出数字基本上是 Lua 添加到表中的 **n**。

我们还可以通过以下代码检查返回表的返回类型:

print(type(table.pack(1,2,3)))

输出

table

更新于:2021年7月19日

5K+ 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告