При определении ключей в таблице, почему они вставляются в случайном порядке? - PullRequest
0 голосов
/ 10 февраля 2019

Во время работы над проектом Love2d я заметил, что при определении таблиц с помощью ключа и помещении указанных таблиц в другую таблицу в цикле таблицы вставлялись в случайном порядке.

Чтобы проверить этоЯ сделал короткий сценарий, который, надеюсь, немного лучше объяснит мое затруднительное положение.Мое первое предположение состоит в том, что ключи вставляются везде, где у меня есть доступная память, хотя я не уверен.Я никогда не сталкивался с этим раньше, у кого-нибудь есть идеи?

enter image description here

1 Ответ

0 голосов
/ 10 февраля 2019

Lua реализует таблицы как хеш-таблицы, поэтому при их обходе возникает очевидный случайный порядок.Это сделано так, чтобы доступ к таблицам можно было выполнять за амортизированное постоянное время.

Если порядок важен для вас, используйте последовательные индексы и комплексные значения, например

t[1] = { key="CA", value="California" }
t[2] = { key="TX", value="Texas" }
...