使用Lua将变量和字符串连接起来,以选择变量。

我有一组存储数量信息的变量和变量 x 用于选择我使用哪一个。我如何将字母 s 和变量 x 连接起来,让它读作 s2 或 s3 等等。我找到的代码不起作用。

x = 2
s1 = false
s2 = 64
s3 = 64
s4 = 64
s5 = 0

如果 s2 >= 0,则
x = 2
如果 s3 >= 0,则
x = 3
如果 s4 >= 0,则
x = 4
如果 s5 >= 0,则
x = 5
结束

如果 turtle.placeDown(),则
尝试向上
turtle.select(1)
_G["s"..x] = _G["s"..x] - 1
结束
点赞
用户4333718
用户4333718

为什么你需要这样做?

我建议改进你的代码,像这样:

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" --注意这里是一个字符串
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 值替换为字符串而不是数字,这可能是导致错误的原因。

2014-12-18 04:07:25