【发布时间】:2016-07-17 09:47:30
【问题描述】:
对不起,如果这是一个愚蠢的问题,我是一个相当缺乏经验的程序员。
我正在尝试使用 Lua 返回数组中的所有值。我可以通过调用它们的索引(例如 read_data[2])返回单个元素,但由于数组中的元素数量是可变的,我不能简单地输入它。我的代码:
function readformatEvent()
local read_data = {}
local duplicate
local unique_data = {}
for i=1,16 do
read_data[i] = readResult(i):readData()
end
for i=1,16 do
duplicate = 0
for j=(i+1),15 do
if read_data[i] == read_data[j] then
duplicate = 1
end
end
if duplicate == 0 then
unique_data[i] = read_data[i]
end
end
return unique_data
end
unique_data 是一个数组,由数组 read_data 中的唯一值组成。 read_data 可以包含 1 到 16 个元素。能够看到完整的数组将帮助我继续编写代码作为故障排除技术。
谢谢,
【问题讨论】:
-
从您的问题中不清楚从数组中返回值是什么意思。您是否尝试将数组的元素作为 Lua 多返回值返回?
-
是的,我希望函数 readformatEvent() 在列表中返回数组 'unique_data' 的每个单独元素
-
unique_data已经是了。好吧,除了弗朗西斯科在他的回答中指出的,你没有正确地将元素插入到数组中。除此之外,unique_data正是您想要的。 -
如何打印数据?如果数组中有“洞”(如果
duplicate == 0会发生这种情况),则需要使用pairs,因为返回的对象不是数组。 -
@JMR:……什么?如果您返回值的代码不知道您正在返回一个数组,那么就没有办法返回一个数组。接收方必须以不同于处理单个值的方式处理数组。如果它不是为此而编写的,那么它将无法工作。