util.table.pack
Shared
Packs values into a table with size information
Syntax
local result = util.table.pack(
...
)Parameters
| Type | Name | Description |
|---|---|---|
any | ... | Values to pack into a table |
Returns
| Type | Name | Description |
|---|---|---|
table | result | Table containing all values with field n set to the number of arguments |
Examples
local t = util.table.pack(1, 2, 3, 4, 5)
core.engine.print("info", t[1], t[2], t[3]) -- 1 2 3
core.engine.print("info", t.n) -- 5local t = util.table.pack("a", nil, "b", nil, "c")
core.engine.print("info", t[1], t[2], t[3]) -- 'a' nil 'b'
core.engine.print("info", t.n) -- 5local function multiReturn()
return 10, 20, 30
end
local t = util.table.pack(multiReturn())
core.engine.print("info", t[1], t[2], t[3]) -- 10 20 30
core.engine.print("info", t.n) -- 3local t = util.table.pack("hello", "world", "lua")
for i = 1, t.n do
core.engine.print("info", t[i])
end
--[[
Output:
'hello'
'world'
'lua'
]]local t = util.table.pack()
core.engine.print("info", t.n) -- 0local t = util.table.pack(42)
core.engine.print("info", t[1]) -- 42
core.engine.print("info", t.n) -- 1local t = util.table.pack(1, "two", true, nil, {5})
core.engine.print("info", t.n) -- 5
core.engine.print("info", type(t[5])) -- 'table'local t = util.table.pack(1, 2, nil, 4)
core.engine.print("info", #t) -- 4 (might be 2 depending on implementation)
core.engine.print("info", t.n) -- 4 (always correct)local t = util.table.pack(1, 2, 3, nil, nil)
core.engine.print("info", t.n) -- 5
core.engine.print("info", t[5]) -- nillocal t = util.table.pack("a", nil, "b", nil)
for i = 1, t.n do
core.engine.print("info", i, t[i])
end
--[[
Output:
'a'
nil
'b'
nil
]]