2016-11-30 4 views
1

Я новичок в Lua и хочу узнать о вложенной таблицеКак читать вложенную таблицу

Это то, что я пытался:

t = {}; 
t[1] = 22, {1, 22, 3}; 
t[2] = 44, {4, 5, 6}; 
t[3] = 66, {4, 5, 6}; 

for k, v in ipairs(t) do 
print(k,v) 
end 

Это не работает для меня. Это результат я хочу: Пример:

1 2 5 
    2 5 66 
    3 6 33 
    4 2 1 
    5 4 12 
    6 4 3 
    7 2 44 
    8 3 1 
    9 2 44 
    10 3 99 


How do I read a nested table like this and 
how do I table.insert in the right column? 

ответ

1

Я считаю, что недоразумение лежит в этом коде:

t[1] = 22, {1, 22, 3}

2-ое значение, то один после запятой, {1, 22, 3} время его назначения ни к чему, он падает в эфире.

Возможно, вы имели в виду, что был стол таблиц:

t[1] = {22, {1, 22, 3}}

Это создает запись в [1] в t, который itself..a таблица t[1][1] == 22 t[1][2] == {1, 22, 3}

Тогда итерацию эту установку вы можете использовать:

local t = {} t[1] = {22, {1, 22, 3}} t[2] = {44, {4, 5, 6}} t[3] = {66, {4, 5, 6}} for _,entry in ipairs(t) do local key = entry[1] io.write(key .. ' ') for _,value in ipairs(entry[2]) do io.write(value .. ' ') end io.write('\n') end

Но, честно говоря, я не уверен, что вы спрашиваете, так как ваш «ожидаемый результат» значительно отличается от вашего набора данных образца.

+0

Спасибо за быстрый ответ. Я думаю, что я имею в виду, что его достаточно с: t [1] = {22, 3} t [2] = {44, 6} t [3] = {66, 63} Как перебирать эту таблицу в простейшем возможно, путь? – Qualmos

0

Ответ на комментарий Qualmos' в ответ Пайо в:

local t = {} 
t[1] = {22,3} 
t[2] = {44,6} 
t[3] = {66,63} 

for _,v in pairs(table) do 
    print(_,v[1],v[2]) 
end 

бы напечатать что-то вроде этого:

1,22,3 
2,44,6 
3,66,63 

Btw, вы можете сделать таблицу выглядеть следующим образом:

local t = { 
    {22,3}; 
    {44,6}; 
    {66,63}; 
} 
+0

Эй, спасибо. Мне очень приятно. – Qualmos