Standard Library Tables
Pack Count
Use table.pack when nil values must still count as arguments.
nil aware count
`table.pack(...).n` keeps the original argument count even when one argument is `nil`.
Pack Count
pack_count.lua
Replay: real traced execution (multi-file project)
local middle = "green"
local count = table.pack("red", middle, nil).n
print("middle=" .. tostring(middle))
print("count=" .. count)
local middle = "yellow"
local count = table.pack("red", middle, nil).n
print("middle=" .. tostring(middle))
print("count=" .. count)
local middle = nil
local count = table.pack("red", middle, nil).n
print("middle=" .. tostring(middle))
print("count=" .. count)
middle ← green, count ← 3
1local middle→ green = "green" --@middle="yellow", nil2local count→ 3 = table.pack("red", middlegreen, nil).n3print("middle=" .. tostring(middlegreen))4print("count=" .. count3)outputmiddle=green count=3
middle ← yellow, count ← 3
1local middle→ yellow = "yellow"2local count→ 3 = table.pack("red", middleyellow, nil).n3print("middle=" .. tostring(middleyellow))4print("count=" .. count3)outputmiddle=yellow count=3
middle ← nil, count ← 3
1local middle→ nil = nil2local count→ 3 = table.pack("red", middlenil, nil).n3print("middle=" .. tostring(middlenil))4print("count=" .. count3)outputmiddle=nil count=3