Мне быстро пришлось что-то отлаживать, и я написал следующую функцию:
function dumpTable(t)
for i,v in pairs(t) do
if type(v) == "table" then
dumpTable(v)
else
print(i..":", v)
end
end
end
Теперь по какой-то причине
dumpTable({[1]="hello??", [2]="two", {[132]="something", [3.2]="else"}})
выходы
132: something
3.2: else
2: two
обратите внимание, как отсутствует первая строка? Но если я поменяю его ключ ..
dumpTable({["one"]="hello??", [2]="two", {[132]="something", [3.2]="else"}})
выводит
132: something
3.2: else
one: hello??
2: two
Это так не интуитивно понятно, что я почти чувствую себя глупцом, не видя ошибки ..
(кстати. Я знаю, что моя функция переполнит стек, если таблица содержит рекурсивную ссылку, и исправлю это позже)