2016-03-28 24 views
0

os.date("*t")の出力で使用されているフィールドのサブセットを持つテーブルを指定し、指定されたフィールドが実際のos.date("*t")呼び出しで指定されたものと一致するかどうかを確認したいと思います。このように:Luaの2つのテーブルの比較?

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ではありません。しかし。どうして?

明らかに、私はルアを初めて使っているので、私の愚かさを許してください。

答えて

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

を必要とされていない整数キーを反復処理します!どうもありがとう! –

関連する問題