Lua 表1.1插入->;记住插入值的键

Lua 表1.1插入->;记住插入值的键,lua,lookup,lua-table,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

我正在将一个变量的值插入表中,并希望确保操作成功。 因此,我希望返回值,但不是通过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
这正是
table.insert所做的:

作为一种特殊(且常见)情况,如果调用insert而不指定位置,它会将元素插入数组的最后一个位置(因此,不会移动元素)

作为旁注,您的函数效率很低;您正在执行一个
O(n)
“contains”检查,如果您创建了一个值索引,那么这个检查可能会做得更好

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