Tables as Data Structures
Keyed Lookup
Tables can also store named fields.
named fields
Use a string key when the field name is selected at runtime.
Keyed Lookup
keyed_lookup.lua
Replay: real traced execution (multi-file project)
local key = "city"
local value = ({name = "Ada", city = "London", role = "admin"})[key]
print("key=" .. key)
print("value=" .. value)
local key = "name"
local value = ({name = "Ada", city = "London", role = "admin"})[key]
print("key=" .. key)
print("value=" .. value)
local key = "role"
local value = ({name = "Ada", city = "London", role = "admin"})[key]
print("key=" .. key)
print("value=" .. value)
key ← city, value ← London
1local key→ city = "city" --@key="name", "role"2local value→ London = ({name = "Ada", city = "London", role = "admin"})[key]London34print("key=" .. keycity)5print("value=" .. valueLondon)outputkey=city value=London
key ← name, value ← Ada
1local key→ name = "name"2local value→ Ada = ({name = "Ada", city = "London", role = "admin"})[key]Ada34print("key=" .. keyname)5print("value=" .. valueAda)outputkey=name value=Ada
key ← role, value ← admin
1local key→ role = "role"2local value→ admin = ({name = "Ada", city = "London", role = "admin"})[key]admin34print("key=" .. keyrole)5print("value=" .. valueadmin)outputkey=role value=admin
Pick by Key
- The table stores named fields for one user.
keyiscity.- The lookup reads the value stored at that key.
- The printed value is
London. | Key | Value | | --- | --- | |name|Ada| |city|London| |role|admin|
Exercise: keyed_lookup.lua
Read a table value by a string key and print both the key and selected value