2015-06-16 2 views
0

Я пытаюсь использовать нотацию for _ in pairs() для итерации по таблице внутри функции, но если я набираю что-нибудь, даже тарабарщину, как print('asdgfafs'), вложенную внутри цикла for, она никогда не печатается. Код:Итерирование по таблице, переданной как аргумент функции в lua

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) 

Может ли кто-нибудь сказать мне, почему и предложить обходной путь?

ответ

1

Вы создаете таблицу recordдо, создавая таблицы bid#.

Итак, когда вы делаете record = {bid1, bid2, bid3}, все из bid# переменных были созданы, и поэтому они все nil. Таким образом, строка фактически равна record = {nil, nil, nil}, что, очевидно, не дает таблице record любые значения.

Инвертировать эти строки, чтобы назначить recordпослеbid# переменное создание.

+0

Я такой дебил .. работал с node.js всю неделю, когда вы видите, я забыл, что другие языки не были асинхронными! Большое спасибо. – user2412643

+0

Это не имеет ничего общего с синхронным или асинхронным. Этот точный код кода в node.js также не удался. Вы не можете использовать переменную перед ее определением. Однако в javascript все определения переменных поднимаются так: var x; code1; var y; code2; var z' фактически определяет все переменные в начале блока. Если вы добавите 'локальную запись, bid1, bid2, bid3' в начало этого фрагмента, то это будет работать по той же причине. В качестве альтернативы, выведите «var» из javascript, и он может выйти из строя (хотя объявленная переменная подъема может даже произойти неявно, я не помню, как это было неправильно). –

+0

О, я просто предположил, что не существует эквивалента javascript's var in lua? Итак, локальный эквивалент var javascript? – user2412643

Смежные вопросы