2012-05-20 4 views
0

У меня есть следующие Lua таблица:итерация над Lua столом не работает

т = {имя = "песочный", возраст = "22", главным = "computerScience"}

Я хочу, чтобы перебрать его, оба метода ниже, не работают

Метод 1

функция printAssociateTable (т) печать («перед циклом») Ф.О. ри, v в ipairs (т) делают печати (v) конец конец

Метод 2

функция printAssociateTable2 (т) печать ("перед циклом") для к в ipairs (т) делать печать («до цикла») печати (к .. «является» ..tk) конец конец

, когда я называю либо методы, они печатают «перед циклом». поэтому проблема в программе не входит в цикл!

я попытался вручную получить доступ к таблице, если я это сделать:

возвращение t.name => дает песчаная

возвращение т [имя] => дает ноль

return t ["name"] => дает песчаный!

Как я могу перебирать мой стол? примите во внимание, что оба метода хорошо работают с помощью простого массива, как этот

а = { "A", "B", "C", "D"}

, но я хочу работать на моем ассоциативном массиве

ответ

3

Итератор ipairs выбирает только элементы массива с целыми числами. Для итерации по всем клавишам требуется pairs, например:

function printAssociateTable(t) 
    print("before the loop") 
    for i,v in pairs(t) do 
    print(v) 
    end 
end 
+0

ДА !!!! СПАСИБО ! – PeacefulSoul

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