Ссылки на переменные динамически - PullRequest
0 голосов
/ 25 сентября 2019

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

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

varExample_1 = 3,
varExample_2 = 3,
varExample_3 = 5,
varExample_5 = 4,
varExample_4 = 2,

newVar = "varExample_" .. GetExampleType(call)

--or more specifically 

if 8 > varExample_ .. GetExampleType(call) then return false end

Я пытаюсь получить значения переменных, но со всеми примерами я могу получить только foдо получения имени переменной в виде строки.

1 Ответ

2 голосов
/ 25 сентября 2019

Прежде всего, рассмотрите возможность использования таблицы вместо глобальных переменных (всегда избегайте их при любой возможности):

local varExample = {}
varExample[1] = 3,
varExample[2] = 3,
varExample[3] = 5,
varExample[5] = 4,
varExample[4] = 2,

или даже лучше

local varExample = {3, 3, 5, 4, 2}

, а затем

if 8 > varExample[GetExampleType(call)] then return false end

Но вы настаиваете на использовании глобальных переменных, доступ к ним можно получить с помощью _G:

if 8 > _G["varExample_"..GetExampleType(call)] then
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...