迭代作为参数传递给 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#
变量创建之后。
我正在尝试使用 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#
变量创建之后。