table.insert - >记住插值的关键

时间:2014-09-10 09:40:01

标签: lua lookup lua-table

我将变量的值插入表中并希望确保操作成功。 因此,我想返回值,但不是返回var,而是从表中返回。

是否有更简单的方法再次通过表格进行迭代?

在插入表时,有哪些方法可以记住表中值的键?

function(value)
    for _,v in pairs(theTable) do
        if v == value then
            return --(due the table already contains the value)
        end
    end
    table.insert(theTable, value)

    return -- table.[VALUE]
end

1 个答案:

答案 0 :(得分:4)

local ix = #theTable + 1
theTable[ix] = value

这几乎是table.insert正在做的事情:

  

作为一种特殊(且常见)的情况,如果我们在没有位置的情况下调用insert,它会将元素插入到数组的最后位置(因此,不移动任何元素)

作为旁注,你的功能非常低效;你正在做O(n)"包含"检查,如果你创建了一个值索引,可以做得更好。