Переменная и строка для выбора переменной в lua
У меня есть набор переменных, который содержит информацию о количестве и х, чтобы выбрать ту, которую я использую. Как я могу объединить буквы s и var x и прочитать их как s2 или s3 и т. Д. Код, который мне удалось найти, не работает.
x = 2
s1 = false
s2 = 64
s3 = 64
s4 = 64
s5 = 0
if s2 >= 0 then
x = 2
elseif s3 >= 0 then
x = 3
elseif s4 >= 0 then
x = 4
elseif s5 >= 0 then
x = 5
end
if turtle.placeDown() then
tryUp()
turtle.select(1)
_G["s"..x] = _G["s"..x] - 1
end
1 ответ
Зачем вам это нужно?
Мое предложение улучшить ваш код будет примерно таким:
local s = {false, 64, 64, 64, 0}
for i = 2, #s do
if s[i] >= 0 then
x = s[i]
end
end
if turtle.placeDown() then
tryUp()
turtle.select(1)
x = x-1
end
Использование цикла делает код несколько более аккуратным, и вам не нужно использовать глобальные переменные. Если вы настаиваете на использовании _G с конкатенацией строк с исходным кодом, попробуйте следующее:
x = 2
s1 = false
s2 = 64
s3 = 64
s4 = 64
s5 = 0
if s2 >= 0 then
x = "2" --Notice the string here
elseif s3 >= 0 then
x = "3"
elseif s4 >= 0 then
x = "4"
elseif s5 >= 0 then
x = "5"
end
if turtle.placeDown() then
tryUp()
turtle.select(1)
_G["s"..x] = _G["s"..x] - 1
end
Это заменяет все значения x строками, а не числами, что, вероятно, было причиной ошибки.