Functions and Scope
Function Parameters
Function parameters receive values from each call.
call inputs
Parameters give a function names for the values passed by the caller.
Function Parameters
function_parameters.lua
Replay: real traced execution (multi-file project)
local level = 3
local function badge(name, value)
return name .. ":" .. value
end
local label = badge("Ada", level)
print("level=" .. level)
print("label=" .. label)
local level = 1
local function badge(name, value)
return name .. ":" .. value
end
local label = badge("Ada", level)
print("level=" .. level)
print("label=" .. label)
local level = 5
local function badge(name, value)
return name .. ":" .. value
end
local label = badge("Ada", level)
print("level=" .. level)
print("label=" .. label)
level ← 3
1local level→ 3 = 3 --@level=1, 523local function badge(name, value)4 return name .. ":" .. value5end67local label = badge("Ada", level3)label ← Ada:3
7local label→ Ada:3 = badge("Ada", level3)89print("level=" .. level3)10print("label=" .. labelAda:3)outputlevel=3 label=Ada:3
level ← 1
1local level→ 1 = 123local function badge(name, value)4 return name .. ":" .. value5end67local label = badge("Ada", level1)label ← Ada:1
7local label→ Ada:1 = badge("Ada", level1)89print("level=" .. level1)10print("label=" .. labelAda:1)outputlevel=1 label=Ada:1
level ← 5
1local level→ 5 = 523local function badge(name, value)4 return name .. ":" .. value5end67local label = badge("Ada", level5)label ← Ada:5
7local label→ Ada:5 = badge("Ada", level5)89print("level=" .. level5)10print("label=" .. labelAda:5)outputlevel=5 label=Ada:5
Follow the Parameters
levelstarts as3.- The call is
badge("Ada", level). - Inside the function,
namereceivesAda. valuereceives3.- The function joins them into
Ada:3. | argument | parameter | used as | | --- | --- | --- | |Ada|name| label name | |3|value| label level | | result | - | Ada:3 |
Exercise: function_parameters.lua
Reproduce level=3 and label=Ada:3, then use the pinned level variants 1 and 5 to predict label=Ada:1 and label=Ada:5.