0

私はこれで完全に行き止まりになりました。これはおそらく信じられないほど基本的なものになるだろうし、頭を壁にぶつけて大きな脳のおならをすることになるだろう. 私の質問は基本的に、エントリがテーブル自体である場合、lua のテーブルをどのようにループするのですか?

C++:

lua_newtable(luaState);
    for(auto rec : recpay) {
        lua_newtable(luaState);

        lua_pushnumber(luaState, rec.amount);
        lua_setfield(luaState, -2, "Amount");

        lua_pushnumber(luaState, rec.units);
        lua_setfield(luaState, -2, "Units");

        lua_setfield(luaState, -2, rec.type);
    }
lua_setglobal(luaState, "RecuringPayments");

ルア:

for _,RecWT in ipairs(RecuringPayments) do
    -- RecWT.Amount = nil?
end
4

2 に答える 2

0

テーブルをトラバースする再帰関数を使用できます。

function traversetable(tab, array)
    local iteratefunc = array and ipairs or pairs
    for k, v in iteratefunc(tab) do
        if type(v) == "table" then
            traversetable(v, array)    --Assumes that type is the same as the parent's table
        else
            --Do other stuff
        end
    end
end

これは基本的な例にすぎませんが、大まかなアイデアを提供します。array1 から始まる配列かどうかを示すブール値です。

于 2013-05-22T07:34:53.110 に答える