2016-03-28 44 views
0

我想提供一個表,其中包含os.date("*t")輸出中使用的字段的子集,並查看指定的字段是否與實際的os.date("*t")調用給出的字段匹配。就像這樣:Lua中兩張桌子的比較?

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}))) 

我希望一個這裏在星期一,作爲「天」給定,但是不是1。但是,我總是得到一個「真實」,絕不是「平」的輸出。怎麼來的?

顯然,我是Lua新手,所以請原諒我的愚蠢。

回答

2

你想改用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

+0

太好了!非常感謝! –