Nano Hash - криптовалюты, майнинг, программирование

Вставка пар ключей в таблицу Lua

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

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

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

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

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

Спасибо

lua
28.10.2011

Ответы:


1

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

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

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

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

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

tab = { type = 'list' }
tab.key1 = 'value one'
tab['key2'] = 'value two'
28.10.2011

2

Кажется, это должен быть ответ:

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

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

28.10.2011
  • Очень мило, кто бы ни проголосовал за меня, когда я пытался понять новый язык. Это было на шаг ближе, и позже я понял, что my_table[Key] работает. 29.10.2011
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

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

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..