我有这个测试功能,它只是打印传递给它的值

function test1(...)
  for k, v in ipairs(arg) do
    print(v)
  end
end

function test2(...)
  for k, v in pairs(arg) do
    print(v)
  end
end

-- GOOD behavior
test1(1, 2, 3, 4) -- produces 1 2 3 4
test2(1, 2, 3, 4) -- produces 1 2 3 4

-- BAD behavior
test1( unpack({1,2}), 3, 4) -- produces 1 3 4
test2( unpack({1,2}), 3, 4) -- produces 1 3 4 3

有人可以向我解释这种行为吗?

最佳答案

此行为并不特定于unpack
Lua Reference Manual说:



(我的重点)

关于lua - Lua unpack()困惑的参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29892079/

10-13 05:06