比较 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
中不需要分号
我想提供一个 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
中不需要分号