不能使用for循环在Lua中重复一个代码部分。

我有一个名为rs的表,其中包含7个(假设为n)字符串。

对于# rs,我希望OBX段按以下方式进行迭代:

for i = 1,#rs,1 do
Msg.OBX [5] [1] = rs [i]
end

我的输出应该是:

Msg.OBX [5] [1] =第一个字符串
Msg.OBX [5] [1] =第二个字符串
Msg.OBX [5] [1] =第三个字符串

重复# rs次

但是我从上面的代码中得到的只是一个与最后一个字符串相对应的片段,即如果我有7个字符串在rs中,我只得到第七个字符串而不是所有七个字符串。

我该怎么解决?

点赞
用户869951
用户869951

你没有 print 语句就得不到那个输出结果。 应该使用 Msg.OBX[5][i] = rs[i] 让程序输出:

Msg.OBX[5][1] = first string
Msg.OBX[5][2] = second string
Msg.OBX[5][3] = third string
...

这也许是你真正想要的输出结果。 如果还是不行,请尝试:

Msg.OBX[5][1] = {}
for i=1, #rs do
    table.insert(Msg.OBX[5][1], rs[i])
end

如果仍然不能将 rs 中的所有字符串插入到 OBX 中,那么你的 rs 表可能存在空隙,可以尝试这样做:

for i,v in ipairs(rs) do print(i,v) end

如果无法打印以下内容,则说明 rs 有空洞或不是数组,因此无法使用 #

1      first string
2      second string
...
7      seventh string
2014-03-21 21:40:05