Lua中用空格连接两个变量值

我有一个字符串,其中包含变量和一个空格和另一个字符串(整数)。该字符串需要基于表"master_table"中元素的数量构建索引数字。第一次处理变量"indexes_to_process"时,它是空的。我尝试使用下面的语句来设置它。然而,它仍然包含一个空值,即使x正确设置了。我确信这是一些语法问题,但我想不起来。我尝试过几个修改,但都不起作用。希望能得到任何建议。目标是有一个包含以下内容的变量:

"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15"等等。我这样做是为了能够控制数千到数百万个索引数字的变量循环。. . .这是我解决处理100K元素后缓慢的表处理的方法。也就是说,我想能够将索引数字添加到变量"indexes_to_process"中,以便循环将命中该元素。这为我节省了处理表中空元素的时间,因为在处理所有表元素时,处理时间太长,而我可能有10K个需要处理的元素。

提前感谢!

if indexes_to_process == nil then
                            for x = 1,table.maxn(master_table) do
                                print ("x:"..x)                         --uncomment for debug
                                indexes_to_process = (indexes_to_process," ",x)
                                print ("indexes to process",indexes_to_process)         --uncomment for debug
                            end
end
点赞
用户7504558
用户7504558
以下是两个示例:

local master_table = {1,2,3,4,5,6} local indexes_to_process

-- 第一个方法 indexes_to_process = table.concat(master_table," ") print(indexes_to_process)

-- 第二个方法 indexes_to_process = nil local temp = {} for k,v in ipairs(master_table) do temp[#temp+1] = v .." " end indexes_to_process = table.concat(temp) print(indexes_to_process)


在任何情况下,都不要在循环内部将字符串粘合在一起,这会消耗大量内存并降低性能,例如:

indexes_to_process = indexes_to_process.. " "..x -- 很不好的做法


注:如果您认为值 `x` 可能为空,则应使用:

x = (x or "") .. "text"

```

2020-01-25 07:45:13