在Lua中,遍历作为参数传递给函数的表。

我正在尝试使用for _ in pairs()的符号来在函数中迭代一个表,但是如果我在for循环内部输入任何东西,即使是胡说八道的比如print('asdgfafs'),它也不会被打印出来。 代码:

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)

有谁能告诉我为什么并提出解决方法?

点赞
用户258523
用户258523

你在创建record表之创建bid#表。

因此,当你执行record = {bid1, bid2, bid3}时,bid#变量都还没有被创建,因此它们都是nil。因此,这一行实际上是record = {nil, nil, nil},显然,这不会给record表赋值。

倒置这些行,将record赋值放在bid#变量创建之

2015-06-16 13:02:03