The length operator counts array-style table entries.

array size Use `#` on a sequence-style table when the numeric keys are continuous from 1.

Table Length

extra
table_length.lua
Replay: real traced execution (multi-file project)
local extra = "green"
local count = #({"red", "blue", extra})

print("extra=" .. extra)
print("count=" .. count)
local extra = "gold"
local count = #({"red", "blue", extra})

print("extra=" .. extra)
print("count=" .. count)
local extra = "gray"
local count = #({"red", "blue", extra})

print("extra=" .. extra)
print("count=" .. count)
  1. extra ← green, count ← 3

    1local extra→ green = "green" --@extra="gold", "gray"2local count→ 3 = #({"red", "blue", extragreen})34print("extra=" .. extragreen)5print("count=" .. count3)
    outputextra=green
    count=3
  1. extra ← gold, count ← 3

    1local extra→ gold = "gold"2local count→ 3 = #({"red", "blue", extragold})34print("extra=" .. extragold)5print("count=" .. count3)
    outputextra=gold
    count=3
  1. extra ← gray, count ← 3

    1local extra→ gray = "gray"2local count→ 3 = #({"red", "blue", extragray})34print("extra=" .. extragray)5print("count=" .. count3)
    outputextra=gray
    count=3

Count the Sequence

  1. The table starts with red and blue.
  2. extra is green.
  3. The table literal places extra in position 3.
  4. # reports the sequence length as 3. | Position | Value | | --- | --- | | 1 | red | | 2 | blue | | 3 | green |

Exercise: table_length.lua

Build a three-value sequence table with one variable value and print its length