Object Patterns with Tables
Constructor Values
Build the scalar values an object constructor would store.
constructor values
A constructor gathers inputs and derives the fields the object will expose.
Constructor Values
constructor_values.lua
Replay: real traced execution (multi-file project)
local id = 7
local prefix = "user"
local key = prefix .. "-" .. id
local state = "disabled"
if id > 5 then
state = "enabled"
end
print("key=" .. key)
print("state=" .. state)
local id = 3
local prefix = "user"
local key = prefix .. "-" .. id
local state = "disabled"
if id > 5 then
state = "enabled"
end
print("key=" .. key)
print("state=" .. state)
local id = 11
local prefix = "user"
local key = prefix .. "-" .. id
local state = "disabled"
if id > 5 then
state = "enabled"
end
print("key=" .. key)
print("state=" .. state)
id ← 7, prefix ← user, key ← user-7, state ← disabled
1local id→ 7 = 7 --@id=3, 112local prefix→ user = "user"3local key→ user-7 = prefixuser .. "-" .. id74local state→ disabled = "disabled"5if id > 5 thenstate ← enabled
4local state = "disabled"5if id7 > 5 then6 state→ enabled = "enabled"7endprint("key=" .. key)
7end8print("key=" .. keyuser-7)9print("state=" .. stateenabled)outputkey=user-7 state=enabled
id ← 3, prefix ← user, key ← user-3, state ← disabled
1local id→ 3 = 32local prefix→ user = "user"3local key→ user-3 = prefixuser .. "-" .. id34local state→ disabled = "disabled"5if id > 5 then6 state = "enabled"7end8print("key=" .. keyuser-3)9print("state=" .. statedisabled)outputkey=user-3 state=disabled
id ← 11, prefix ← user, key ← user-11, state ← disabled
1local id→ 11 = 112local prefix→ user = "user"3local key→ user-11 = prefixuser .. "-" .. id114local state→ disabled = "disabled"5if id > 5 thenstate ← enabled
4local state = "disabled"5if id11 > 5 then6 state→ enabled = "enabled"7endprint("key=" .. key)
7end8print("key=" .. keyuser-11)9print("state=" .. stateenabled)outputkey=user-11 state=enabled