比较 Lua 中的两个表?

Comparison of two tables in Lua?

我想提供一个 table,它具有 os.date("*t") 输出中使用的字段的子集,并查看指定的字段是否与实际 os.date("*t")打电话。像这样:

function datetimeTableTrue (dt)
    local nowTodayTable = os.date("*t");
    for i, v in ipairs(dt) do
        print("ping");
        if not (dt[i] == nowTodayTable[i] ) then
            return(false);
        end
    end
    print("pong");
    return(true);
end

print(tostring(datetimeTableTrue({day=0,hour=15})))

我希望星期一在这里出现 false,因为给出了 'day' 但不是 1。但是,我总是得到 'true' 并且从来没有 "ping" 输出。怎么会?

显然,我是Lua的新手,所以请原谅我的愚蠢。

您想使用 pairs 而不是 ipairs,ipairs 只会遍历整数键

function datetimeTableTrue(dt)
    local nowTodayTable = os.date("*t")
    for k, v in pairs(dt) do
        if nowTodayTable[k] ~= v then
            return false
        end
    end
    return true
end

print(datetimeTableTrue({day=0, hour=15}))

Lua

中不需要分号