Использование Lua используется 5.1
Я пытаюсь получить таблицу словаря и сохранить ее в таблице, где у меня есть индекс ключа и значение, являющееся данными, например:
tParams = {
{1st table data...} -- this one is key index 1
{2nd table data...} -- 2nd index
...
}
Я использую этот код для его хранения:
tParams[index] = i --i being a dictionary table
Я могу добавить код в правильный индекс, и таблица выводится, если вызывается, так что все в порядке
1 table: 0xa4a2fc0
2 table: 0x9f7c4c0
Теперь проблема в том, что если я удалю, например, данные первого индекса, я НЕ хочу, чтобы данные второго индекса перемещались в 1-ю позицию только потому, что они пусты, они просто занимают место и становятся индексом 1... как я могу избежать этого ?
Или, если у вас есть другое решение в целом, я хочу сохранить данные таблицы словаря, которые я получаю, и, если они вызваны, иметь возможность получать данные и работать с ними, и если они мне больше не нужны, чтобы удалить их .
В зависимости от того, сколько экземпляров создано, может быть много словарей, поэтому я не могу просто предварительно их создать. В основном они будут динамическими ... и каждый раз, когда у них есть определенный идентификатор, они приходят с ним, поэтому 2 словаря не будут иметь одинаковый идентификатор.
Если словарь удален, другие словари не должны перемещаться и оставаться в одном и том же индексе/идентификаторе, чтобы их можно было вызвать и получить правильные данные.
Я надеюсь, что я был понятен, также, пожалуйста, не предлагайте никаких дополнительных модулей.
Спасибо!
Вы не предоставляете весь соответствующий код, но основной способ удалить элемент из таблицы — это tParams[index] = nil
. Это не должно вызывать проблему, которую вы описываете.
Звучит так, как будто вы используете table.remove
. Эта функция используется для поддержания правильной последовательности, так что #
оператор и некоторые стандартные библиотечные функции могут иметь для нее значение.
Идеально, именно то, что мне было нужно! Я действительно использовал table.remove, добавление нуля помогло! :D Спасибо!!!