Получить значение из таблицы, проиндексированной по строкам

У меня есть таблица LUA:

flys = {
["Moltres"] = {229, 2300}, -- moltres
["Articuno"] = {230, 2100}, -- artic
["Zapdos"] = {224, 2600}, -- zapdos
["Mew"] = {232, 2200}, -- 1000
["Mewtwo"] = {233, 2200},-- two
["Dragonite"] = {221, 1300},-- nite
["Pidgeot"] = {222, 900}, -- geot
["Fearow"] = {226, 800}, -- fearow
["Aerodactyl"] = {227, 1100}, -- aero
["Charizard"] = {216, 1000}, -- chari
["Porygon"] = {316, 600}, -- porygon
["Shiny Dragonite"] = {1020, 1300},-- Shiny nite
["Shiny Pidgeot"] = {996, 900}, -- Shiny geot
["Shiny Fearow"] = {997, 800}, -- Shiny fearow          --alterado v2.5
["Shiny Charizard"] = {295, 1000}, -- Shiny chari
["Porygon2"] = {648, 890}, -- 2
["Skarmory"] = {649, 1000}, -- skarmory
["Crobat"] = {652, 1190}, -- crobat

["Dragonair"] = {1112, 1150},
["Shiny Dragonair"] = {1113, 1400},  --alterado v2.5
["Noctowl"] = {994, 1000},
}

Он индексируется строками, каждый элемент содержит 2 числа.

Я не могу понять значения. Я хочу, например, распечатать номер из некоторого объекта таблицы.

Самый очевидный способ (для меня) не работает:

local pokemon3 = flys["Pidgeot"]
print("pokemon id: "..pokemon3[1])

В нем указано нулевое значение. Я пробовал много их комбинаций, но ни одна из них не работала.


person Piodo    schedule 13.10.2017    source источник


Ответы (1)


Я не вижу проблем со скриптом, и он отлично работает у меня (проверено в Lua 5.1, 5.2 и 5.3).

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

person Paul Kulchenko    schedule 13.10.2017
comment
Да, вы правы, это работает. Я нашел другую таблицу с таким именем в файлах, над которыми работаю. Это создавало проблемы. Спасибо - person Piodo; 14.10.2017