Values and Types
Array Tables
Tables can act like arrays when they use consecutive numeric indexes.
array-like table
An array-like table stores ordered values at numeric indexes starting at one.
Array Tables
array_tables.lua
Replay: real traced execution (multi-file project)
local first = "red"
local count = #{first, "white", "black"}
local selected = ({first, "white", "black"})[2]
print("first=" .. first)
print("selected=" .. selected)
print("count=" .. count)
local first = "blue"
local count = #{first, "white", "black"}
local selected = ({first, "white", "black"})[2]
print("first=" .. first)
print("selected=" .. selected)
print("count=" .. count)
local first = "green"
local count = #{first, "white", "black"}
local selected = ({first, "white", "black"})[2]
print("first=" .. first)
print("selected=" .. selected)
print("count=" .. count)
first ← red, count ← 3, selected ← white
1local first→ red = "red" --@first="blue", "green"2local count→ 3 = #{firstred, "white", "black"}3local selected→ white = ({first, "white", "black"})[2]white45print("first=" .. firstred)6print("selected=" .. selectedwhite)7print("count=" .. count3)outputfirst=red selected=white count=3
first ← blue, count ← 3, selected ← white
1local first→ blue = "blue"2local count→ 3 = #{firstblue, "white", "black"}3local selected→ white = ({first, "white", "black"})[2]white45print("first=" .. firstblue)6print("selected=" .. selectedwhite)7print("count=" .. count3)outputfirst=blue selected=white count=3
first ← green, count ← 3, selected ← white
1local first→ green = "green"2local count→ 3 = #{firstgreen, "white", "black"}3local selected→ white = ({first, "white", "black"})[2]white45print("first=" .. firstgreen)6print("selected=" .. selectedwhite)7print("count=" .. count3)outputfirst=green selected=white count=3
Follow the Table
firststarts asred.- The table is
red,white,black. - Index
2selectswhite. - The table length is
3. - The program prints
first=red,selected=white, andcount=3. | first | selected | count | | --- | --- | --- | | red | white | 3 | | blue | white | 3 | | green | white | 3 |
Exercise: array_tables.lua
Reproduce selected=white and count=3, then use first blue and green to predict which output changes.