Вставка пар ключей в таблицу Lua - PullRequest
8 голосов
/ 28 октября 2011

Просто выбираю Луа и пытаюсь понять, как строить таблицы. Я выполнил поиск и нашел информацию в table.insert, но все найденные примеры, похоже, предполагают, что мне нужны только числовые индексы, в то время как я хочу добавить пары ключей.

Итак, мне интересно, действительно ли это?

    my_table = {}
    my_table.insert(key = "Table Key", val = "Table Value")

Это будет сделано в цикле, и я должен иметь доступ к содержимому позже:

    for k, v in pairs(my_table) do
        ...
    end

Спасибо

Ответы [ 2 ]

25 голосов
/ 29 октября 2011

Существуют два основных способа создания таблиц и их заполнения данными.

Сначала необходимо создать и заполнить таблицу сразу, используя конструктор таблицы . Это делается следующим образом:

tab = {
    keyone = "first value",      -- this will be available as tab.keyone or tab["keyone"]
    ["keytwo"] = "second value", -- this uses the full syntax
}

Если вы заранее не знаете, какие значения вам нужны, вы можете сначала создать таблицу с помощью {}, а затем заполнить ее с помощью оператора []:

tab = {}
tab["somekey"] = "some value" -- these two lines ...
tab.somekey = "some value"    -- ... are equivalent

Обратите внимание, что вы можете использовать второй (точечный) синтаксис sugar только в том случае, если ключ является строкой, соответствующей правилам «идентификатора» - то есть начинается с буквы или подчеркивания и содержит только буквы, цифры и подчеркивание.

P.S. : Конечно, вы можете объединить два способа: создать таблицу с помощью конструктора таблицы, а затем заполнить оставшуюся часть с помощью оператора []:

tab = { type = 'list' }
tab.key1 = 'value one'
tab['key2'] = 'value two'
1 голос
/ 28 октября 2011

Похоже, это должен быть ответ:

my_table = {}
Key = "Table Key"
-- my_table.Key = "Table Value"
my_table[Key] = "Table Value"

Сделал работу за меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...