2014-10-31 2 views
0

В прошлом я обнаружил, что использую таблицу как индекс и значение таблицы, когда заказ не имеет значения. Поскольку каждая таблица возвращает уникальное значение, которое они сохраняют для использования в качестве индекса , и с этим я уже получил всю информацию, которую я хочу использовать , использовать позже в программе. Теперь я не видел никакого подобного кода lua и не использовал его в не-тестовой программе. Поэтому я беспокоюсь, что при использовании этого метода у меня могут возникнуть непредвиденные/неожиданные проблемы.Потенциальные проблемы с сохранением второй таблицы двумерных массивов в индексе

пример:

a = {1,2,3,4,5}       --some testing values 
b = {2,nil,4,nil,1} 
c = {3,nil,nil,nil,2} 
d = {4,nil,1,nil,3} 
e = {5,1,2,3,4} 

tab = {a,b,c,d,e} 
t = {} 

for i, v in pairs(tab) do 
    t[v] = 0 
end 

for iv in pairs(t) do     --is almost every time outputting it in a different order 
    print(iv[1],iv[2],iv[3],iv[4],iv[5])  --could be a list of data where you have to go through all of it anyway 
end 

io.read() 

Теперь я могу хранить некоторую дополнительную информацию, в т [v], но если у меня нет любого есть там, возможно, некоторые Lua типа, который меньше?

Edit:

ли это хорошо сочетаются с использованием слабых столов?

Примечание:

Стандартный 2d таблица: таблица [key1] = таблица

стол [key1] [key2] < - содержит StuFF

эту версию: таблица [таблица] = ничего, кроме ноль < - не доступен по таблице [key1] [key2]

key1 [key2] < - содержит S tuff

+0

Я не понимаю ваше последнее предложение. – lhf

+0

@lhf t [v], который я инициализирую как 0, нужен только потому, что nil будет означать, что таблица не существует. Поэтому использование значения, которое использует как можно меньший объем памяти, сэкономит немало, если это станет большим. – CHlM3RA

+1

0 занимает как можно меньше; так делает 'false'. – lhf

ответ

1

Хорошо использовать таблицу в качестве ключа в другой таблице.

Однако обратите внимание, что в разных таблицах будут разные клавиши, даже таблицы имеют одинаковое содержимое.

+0

В нормальных условиях да, но недельные столы могут запутаться. Я должен посмотреть на них в следующие дни. Я думаю, что было что-то с ключом и индексом. – CHlM3RA

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