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+ 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告