Command-Line Arguments
Count Arguments
Count non-empty argument values.
count arguments
Counting arguments helps decide whether enough input was provided.
Count Arguments
count_arguments.lua
Replay: real traced execution (multi-file project)
local extra = ""
local count = 0
for _, value in ipairs({"run", extra, "main.lua"}) do
if value ~= "" then
count = count + 1
end
end
print("extra=" .. extra)
print("count=" .. count)
local extra = "--fast"
local count = 0
for _, value in ipairs({"run", extra, "main.lua"}) do
if value ~= "" then
count = count + 1
end
end
print("extra=" .. extra)
print("count=" .. count)
local extra = "--debug"
local count = 0
for _, value in ipairs({"run", extra, "main.lua"}) do
if value ~= "" then
count = count + 1
end
end
print("extra=" .. extra)
print("count=" .. count)
extra ← (empty), count ← 0
1local extra→ (empty) = "" --@extra="--fast", "--debug"2local count→ 0 = 0_, value in ipairs({"run", extra, "main.lua"}) do
pass 1 of 34for _1, valuerun in ipairs({"run", extra(empty), "main.lua"}) do5 if value ~= "" then6 count = count + 1All 3 passes — pass 1 is the card above pass _valuecount1 1 run 0 → 1 2 2 (empty) — 3 3 main.lua 1 → 2 count ← 1
pass 1 of 24for _, value in ipairs({"run", extra, "main.lua"}) do5 if valuerun ~= "" then6 count→ 1 = count + 17 endcount ← 2
pass 2 of 24for _, value in ipairs({"run", extra, "main.lua"}) do5 if valuemain.lua ~= "" then6 count→ 2 = count + 17 endprint("extra=" .. extra)
10print("extra=" .. extra(empty))11print("count=" .. count2)outputextra= count=2
extra ← --fast, count ← 0
1local extra→ --fast = "--fast"2local count→ 0 = 0_, value in ipairs({"run", extra, "main.lua"}) do
pass 1 of 34for _1, valuerun in ipairs({"run", extra--fast, "main.lua"}) do5 if value ~= "" then6 count = count + 1All 3 passes — pass 1 is the card above pass _value1 1 run 2 2 --fast 3 3 main.lua count ← 1
pass 1 of 34for _, value in ipairs({"run", extra, "main.lua"}) do5 if valuerun ~= "" then6 count→ 1 = count + 17 endAll 3 passes — pass 1 is the card above pass valuecount1 run 0 → 1 2 --fast 1 → 2 3 main.lua 2 → 3 print("extra=" .. extra)
10print("extra=" .. extra--fast)11print("count=" .. count3)outputextra=--fast count=3
extra ← --debug, count ← 0
1local extra→ --debug = "--debug"2local count→ 0 = 0_, value in ipairs({"run", extra, "main.lua"}) do
pass 1 of 34for _1, valuerun in ipairs({"run", extra--debug, "main.lua"}) do5 if value ~= "" then6 count = count + 1All 3 passes — pass 1 is the card above pass _value1 1 run 2 2 --debug 3 3 main.lua count ← 1
pass 1 of 34for _, value in ipairs({"run", extra, "main.lua"}) do5 if valuerun ~= "" then6 count→ 1 = count + 17 endAll 3 passes — pass 1 is the card above pass valuecount1 run 0 → 1 2 --debug 1 → 2 3 main.lua 2 → 3 print("extra=" .. extra)
10print("extra=" .. extra--debug)11print("count=" .. count3)outputextra=--debug count=3