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
廣告