Вместо преобразования ap[4]
в число вы можете использовать loadstring
для его выполнения.
Пример:
ap = {[4] = 'Hello World'}
message = "ap[4]"
get_valueMessage = loadstring("return " .. message)
print(get_valueMessage())
Этот метод обеспечивает гибкость при работе с таблицами переменной глубины,Если ваша работа с таблицами с одинаковой глубиной, то ответ Егора Скриптунофа является лучшим решением
Таблица должна быть глобальной, чтобы функция loadstring могла получить к ней доступ.
Что следует иметь в виду, оэтот метод, он также предлагает путь внедрения для вредоносного кода, поскольку он выполняет сообщение.Если сообщение содержит что-то иное, чем индекс таблицы, такой как вызов функции, его можно использовать.return
, добавленное к сообщению, смягчает некоторые из махинаций.