Lua 中两个表的比较?

我想提供一个表,其中包含 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 新手,请原谅我的愚蠢。

点赞
用户1192111
用户1192111

将下面翻译成中文并且保留原本的 markdown 格式

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不需要使用分号。
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}))
2016-03-28 19:10:14