Проблемы индексации таблиц Lua между строками и целыми числами

Я создал сложную таблицу таблиц и использовал переменную в качестве индексов. По какой-то причине у меня были проблемы с тем, что мой код был очень глючным.

Оказалось, что мне нужно преобразовать индекс в строки

Таким образом,

myTable[index] 

нужно было преобразовать в

myTable[tostring(index)]

иначе

Иногда индекс действовал как строка, а иногда как целое число(I никогда не преобразовывал индекс в строку ни в одном месте кода.

Это вызывало проблемы, потому что myTable[1]и myTable["1"]были созданы, и оба быть другим (и я перебирал пары k/v, поэтому myTable[1]не появлялись).

Это очень странное поведение, но я думаю, что это ожидаемо? Есть ли способ создать новый тип на основе таблицы, которая всегда использует строковые индексы, чтобы можно было избежать этой херни?

0
задан Uiy 28 March 2012 в 12:38
поделиться