Functions and Scope
Default Fallback
Lua functions can choose fallback values when a parameter is nil.
fallback value
Use `or` when a missing argument should become a simple default.
Default Fallback
default_fallback.lua
Replay: real traced execution (multi-file project)
local count = 2
local function repeat_label(label, times)
local actual = times or 1
return label .. ":" .. actual
end
local result = repeat_label("task", count)
print("count=" .. count)
print("result=" .. result)
local count = 0
local function repeat_label(label, times)
local actual = times or 1
return label .. ":" .. actual
end
local result = repeat_label("task", count)
print("count=" .. count)
print("result=" .. result)
local count = 5
local function repeat_label(label, times)
local actual = times or 1
return label .. ":" .. actual
end
local result = repeat_label("task", count)
print("count=" .. count)
print("result=" .. result)
count ← 2
1local count→ 2 = 2 --@count=0, 523local function repeat_label(label, times)4 local actual = times or 15 return label .. ":" .. actual6end78local result = repeat_label("task", count2)result ← task:2
8local result→ task:2 = repeat_label("task", count2)910print("count=" .. count2)11print("result=" .. resulttask:2)outputcount=2 result=task:2
count ← 0
1local count→ 0 = 023local function repeat_label(label, times)4 local actual = times or 15 return label .. ":" .. actual6end78local result = repeat_label("task", count0)result ← task:0
8local result→ task:0 = repeat_label("task", count0)910print("count=" .. count0)11print("result=" .. resulttask:0)outputcount=0 result=task:0
count ← 5
1local count→ 5 = 523local function repeat_label(label, times)4 local actual = times or 15 return label .. ":" .. actual6end78local result = repeat_label("task", count5)result ← task:5
8local result→ task:5 = repeat_label("task", count5)910print("count=" .. count5)11print("result=" .. resulttask:5)outputcount=5 result=task:5