迭代作为参数传递给 lua 中的函数的 table

iterating over a table passed as an argument to a function in lua

我正在尝试使用 for _ in pairs() 表示法在函数内迭代 table,但如果我输入任何内容,甚至像 print('asdgfafs') 这样嵌套在 for 循环中的乱码,它永远不会被打印出来。代码:

record = {bid1,bid2,bid3}
bid1 = {bidTime = 0.05,bidType = 'native'}
bid2 = {bidTime = 0.1,bidType = 'notNative'}
bid3 = {bidTime = 0.3,bidType = 'native'}

function getBids(rec,bidTimeStart,bidTimeFinish,bidType,numberOfBids)
    wantedBids = {}
    bidCount = 0

    for i,v in pairs(rec) do
        print('asdfasdfasdfa')
        print(i .. ' + ' .. v)
    end
end

getBids(record,0,1,'native',5)

谁能告诉我原因并提出解决方法?

您正在创建 record table ,然后 创建 bid# table。

因此,当您执行 record = {bid1, bid2, bid3} 时,bid# 个变量中的 none 已经创建,因此它们都是 nil。所以那条线实际上是 record = {nil, nil, nil} ,显然,它没有给 record table 任何值。

反转这些行以将 record 赋值 放在 bid# 变量创建之后。