Count non-empty argument values.

count arguments Counting arguments helps decide whether enough input was provided.

Count Arguments

extra
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)
  1. extra ← (empty), count ← 0

    1local extra→ (empty) = "" --@extra="--fast", "--debug"2local count→ 0 = 0
  2. _, value in ipairs({"run", extra, "main.lua"}) do

    pass 1 of 3
    4for _1, valuerun in ipairs({"run", extra(empty), "main.lua"}) do5  if value ~= "" then6    count = count + 1
    All 3 passes — pass 1 is the card above
    pass_valuecount
    11run0 1
    22(empty)
    33main.lua1 2
  3. count ← 1

    pass 1 of 2
    4for _, value in ipairs({"run", extra, "main.lua"}) do5  if valuerun ~= "" then6    count→ 1 = count + 17  end
  4. count ← 2

    pass 2 of 2
    4for _, value in ipairs({"run", extra, "main.lua"}) do5  if valuemain.lua ~= "" then6    count→ 2 = count + 17  end
  5. print("extra=" .. extra)

    10print("extra=" .. extra(empty))11print("count=" .. count2)
    outputextra=
    count=2
  1. extra ← --fast, count ← 0

    1local extra→ --fast = "--fast"2local count→ 0 = 0
  2. _, value in ipairs({"run", extra, "main.lua"}) do

    pass 1 of 3
    4for _1, valuerun in ipairs({"run", extra--fast, "main.lua"}) do5  if value ~= "" then6    count = count + 1
    All 3 passes — pass 1 is the card above
    pass_value
    11run
    22--fast
    33main.lua
  3. count ← 1

    pass 1 of 3
    4for _, value in ipairs({"run", extra, "main.lua"}) do5  if valuerun ~= "" then6    count→ 1 = count + 17  end
    All 3 passes — pass 1 is the card above
    passvaluecount
    1run0 1
    2--fast1 2
    3main.lua2 3
  4. print("extra=" .. extra)

    10print("extra=" .. extra--fast)11print("count=" .. count3)
    outputextra=--fast
    count=3
  1. extra ← --debug, count ← 0

    1local extra→ --debug = "--debug"2local count→ 0 = 0
  2. _, value in ipairs({"run", extra, "main.lua"}) do

    pass 1 of 3
    4for _1, valuerun in ipairs({"run", extra--debug, "main.lua"}) do5  if value ~= "" then6    count = count + 1
    All 3 passes — pass 1 is the card above
    pass_value
    11run
    22--debug
    33main.lua
  3. count ← 1

    pass 1 of 3
    4for _, value in ipairs({"run", extra, "main.lua"}) do5  if valuerun ~= "" then6    count→ 1 = count + 17  end
    All 3 passes — pass 1 is the card above
    passvaluecount
    1run0 1
    2--debug1 2
    3main.lua2 3
  4. print("extra=" .. extra)

    10print("extra=" .. extra--debug)11print("count=" .. count3)
    outputextra=--debug
    count=3